使用LINQ获取两个数组中的不同和常用项
例如,我有两个数组:
var list1 = string[] {"1", "2", "3", "4", "5", "6"}; var list2 = string[] {"2", "3", "4"};
我想做的是 –
- 从
list1
和list2
获取常用项(例如{。{2“,”3“,”4“}) - 获取不同的项目
list1
和list2
(例如{“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