c# - 使用 LINQ 在两个数组中获取不同的和共同的项目

标签 c# linq

<分区>

例如,我有两个数组:

var list1 = string[] {"1", "2", "3", "4", "5", "6"};
var list2 = string[] {"2", "3", "4"};

我想做的是-

  1. list1list2 中获取常见项目(例如 {"2", "3", "4"})
  2. 获取不同的项目 list1list2(例如 {"1", "5", "6"})

所以我尝试使用 LINQ 和 -

var listDiff = list1.Except(list2); //This gets the desire result for different items

但是,

var listCommon = list1.Intersect(list2); //This doesn't give me desire result. Comes out as {"1", "5", "6", "2", "3", "4"};

有什么想法吗?

最佳答案

您以某种方式从其他地方获得了该结果。 (也许您首先写出了 listDIff 的内容,并认为它来自 listCommon。)Intersect 方法 为您提供两个列表中都存在的项目:

var list1 = new string[] {"1", "2", "3", "4", "5", "6"};
var list2 = new string[] {"2", "3", "4"};
var listCommon = list1.Intersect(list2);
foreach (string s in listCommon) Console.WriteLine(s);

输出:

2
3
4

关于c# - 使用 LINQ 在两个数组中获取不同的和共同的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10648141/

相关文章:

c# - 在 NHibernate 中映射私有(private)字段(使用 Fluent NH)

c# DateTime,修剪而不转换为字符串

c# - 是否可以有一个匿名类型的条件字段

.net - 如何使用 LINQ 插入后检索标识列值

sql - 在LINQ To SQL中使用 “Is NULL/not NULL”

c# - 将模型导出到数据表

C# 设置项目输出自动以管理权限启动

c# - 运算符 '==' 不能应用于类型 'Type?' 和 'Type?' 的操作数

c# - 如何验证工厂方法?

c# - Entity Framework 和大型查询。什么实用?