C#把A数组LIST<STRING>("XXX","XXX","XXX")与B数组LIST<STRING>("YYY","YYY","YYY")合并进C数组LIST<STRING>,需求C数组结果为("XXX","YYY","XXX","YYY","XXX","YYY")
时间: 2023-07-09 13:54:19 浏览: 48
你可以使用 `Zip()` 方法将两个数组按索引位置一一对应地合并,然后使用 `SelectMany()` 方法将每个元素的值展平为一个数组,最后将其转换为 `List<string>` 类型。以下是示例代码:
```csharp
List<string> A = new List<string>() { "XXX", "XXX", "XXX" };
List<string> B = new List<string>() { "YYY", "YYY", "YYY" };
List<string> C = A.Zip(B, (a, b) => new[] { a, b }).SelectMany(x => x).ToList();
```
在这里,我们使用 `Zip()` 方法将数组 A 和 B 按索引位置一一对应地合并为一个元素为数组的新数组,然后使用 `SelectMany()` 方法将每个元素的值展平为一个数组,最后将其转换为 `List<string>` 类型并赋值给数组 C。
相关问题
C#把A数组LIST<STRING>("A","C","E")与B数组LIST<STRING>("B","D","F")合并进C数组LIST<STRING>,需求C数组结果为("A","B","C","D","E","F")
你可以使用 `Concat()` 方法将两个数组合并为一个数组,然后通过 `ToList()` 方法将其转换为 `List<string>` 类型。以下是示例代码:
```csharp
List<string> A = new List<string>() { "A", "C", "E" };
List<string> B = new List<string>() { "B", "D", "F" };
List<string> C = A.Concat(B).OrderBy(x => x).ToList();
```
在这里,我们使用 `Concat()` 方法将数组 A 和 B 合并为一个数组,然后使用 `OrderBy()` 方法按字母顺序对数组进行排序,最后将其转换为 `List<string>` 类型并赋值给数组 C。
C#List<List<string>>转成二维数组
将`List<List<string>>`转换为二维数组可以使用循环遍历,将内部的List<string>`转换为一维数组,再将这些一维数组添加到二维数组中。以下是一个示例代码:
```csharp
List<List<string>> data = new List<List<string>>
{
new List<string> {"A1", "B1", "C1"},
new List<string> {"A2", "B2", "C2"},
new List<string> {"A3", "B3", "C3"},
};
// 获取二维数组的行数和列数
int rowCount = data.Count;
int columnCount = data[0].Count;
// 初始化二维数组
string[,] array = new string[rowCount, columnCount];
// 遍历List,将每个内部的List<string>转换为一维数组,再添加到二维数组中
for (int i = 0; i < rowCount; i++)
{
for (int j = 0; j < columnCount; j++)
{
array[i, j] = data[i][j];
}
}
```
在这个例子中,我们首先获取了`List<List<string>>`的行数和列数,并创建了一个相同大小的二维数组`array`。然后,我们使用双重循环遍历`List<List<string>>`,将每个内部的`List<string>`转换为一维数组,再将其添加到二维数组中。最终,我们得到了一个二维数组`array`,其中包含了`List<List<string>>`中的所有数据。