C#中多个List合并
时间: 2024-12-11 09:37:22 浏览: 16
在C#中,如果你需要将多个`List<T>`合并成一个新的列表,可以使用`Concat()`、`Union()`、`ConcatEnumerable()` 或者直接使用 `+=` 运算符来实现:
1. **使用 `Concat()`**:
```csharp
List<int> list1 = new List<int>() { 1, 2, 3 };
List<int> list2 = new List<int>() { 4, 5, 6 };
List<int> mergedList = list1.Concat(list2).ToList();
```
2. **使用 `Union()`**:
```csharp
List<int> unionList = list1.Union(list2).ToList();
```
这会创建一个新的列表,其中包含了所有唯一的元素,不会重复。
3. **使用 `ConcatEnumerable()`**(适用于LINQ):
```csharp
using System.Linq;
List<int> combined = list1.ConcatEnumerable(list2).ToList();
```
4. **使用 `+=` 运算符**:
```csharp
list1.AddRange(list2);
```
这将在原列表 `list1` 的末尾添加 `list2` 中的所有元素。
相关问题
c# 合并多个List
在 C# 中,可以使用 `List.AddRange()` 方法将多个 List 合并成一个 List。以下是一个示例:
```csharp
List<int> list1 = new List<int> { 1, 2, 3 };
List<int> list2 = new List<int> { 4, 5, 6 };
List<int> list3 = new List<int> { 7, 8, 9 };
List<int> mergedList = new List<int>();
mergedList.AddRange(list1);
mergedList.AddRange(list2);
mergedList.AddRange(list3);
// mergedList 现在包含所有元素:1, 2, 3, 4, 5, 6, 7, 8, 9
```
另外,如果你有多个 List,可以将它们放在一个 List 的数组中,然后使用 LINQ 的 `SelectMany()` 方法合并它们。以下是示例:
```csharp
List<int> list1 = new List<int> { 1, 2, 3 };
List<int> list2 = new List<int> { 4, 5, 6 };
List<int> list3 = new List<int> { 7, 8, 9 };
List<int>[] lists = new List<int>[] { list1, list2, list3 };
List<int> mergedList = lists.SelectMany(x => x).ToList();
// mergedList 现在包含所有元素:1, 2, 3, 4, 5, 6, 7, 8, 9
```
C# List<T>合并多个List
你可以使用 LINQ 中的 `Concat` 方法将多个 `List<T>` 合并成一个。以下是示例代码:
```csharp
List<List<T>> lists = new List<List<T>>();
// 假设已经将需要合并的多个List存储到了lists中
List<T> mergedList = lists.SelectMany(list => list).ToList();
```
你可以使用以上代码将多个 `List<T>` 合并成一个 `mergedList`。
阅读全文