C# 两个List集合进行对比返回不同
时间: 2023-07-12 15:06:59 浏览: 125
可以使用 LINQ 中的 Except 方法来实现两个 List 集合的比较,返回不同的元素。具体实现方法如下:
```csharp
List<int> list1 = new List<int> { 1, 2, 3, 4 };
List<int> list2 = new List<int> { 3, 4, 5, 6 };
var differentItems = list1.Except(list2).Concat(list2.Except(list1));
```
以上代码中,我们分别使用 Except 方法得到 list1 中有而 list2 中没有的元素,以及 list2 中有而 list1 中没有的元素。最后将这两个结果合并起来,就可以得到两个集合中不同的元素。在上面的例子中,differentItems 的结果为 { 1, 2, 5, 6 }。
相关问题
c# 两个List对比返回不同的list
可以使用 LINQ 的 Except 方法来实现。该方法用于获取一个集合中存在于另一个集合中的元素之外的所有元素。
下面是一个示例代码:
```csharp
List<int> list1 = new List<int> { 1, 2, 3, 4, 5 };
List<int> list2 = new List<int> { 3, 4, 5, 6, 7 };
List<int> differentList = list1.Except(list2).ToList();
foreach (int number in differentList)
{
Console.WriteLine(number);
}
```
在上面的代码中,我们有两个整数列表 `list1` 和 `list2`。我们使用 `Except` 方法来获取 `list1` 中存在但 `list2` 中不存在的元素,并将它们存储在 `differentList` 中。最后,我们遍历 `differentList` 并将结果打印到控制台上。
输出结果应该是:
```
1
2
```
因为在 `list1` 中只有 1 和 2 两个元素而它们都不存在于 `list2` 中。
C#两个list集合去重复
你可以使用LINQ库来对List集合进行去重,示例代码如下:
```
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main(string[] args)
{
List<int> list1 = new List<int> { 1, 2, 3, 4 };
List<int> list2 = new List<int> { 3, 4, 5, 6 };
List<List<int>> listCollection = new List<List<int>> { list1, list2 };
var mergedList = listCollection.SelectMany(l => l).Distinct().ToList();
Console.WriteLine(string.Join(",", mergedList));
}
}
```
输出结果为:`1,2,3,4,5,6`。
这里先将两个List集合放在一个List集合中,然后使用`SelectMany`函数将所有List集合中的元素取出来,再使用`Distinct`函数进行去重,最后将结果转换成List类型。注意需要先引入`System.Linq`命名空间,才能使用LINQ库中的函数。
阅读全文