How does LINQ Except work? [duplicate]

孤人 提交于 2019-12-03 04:19:21

Taken from 101 LINQ Samples:

int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 }; 
int[] numbersB = { 1, 3, 5, 7, 8 }; 

IEnumerable<int> aOnlyNumbers = numbersA.Except(numbersB); 

Console.WriteLine("Numbers in first array but not second array:"); 
foreach (var n in aOnlyNumbers) 
{ 
    Console.WriteLine(n); 
}

Result

Numbers in first array but not second array: 0 2 4 6 9

For example this will not return any result...

That's correct.

2.2 exists in the first collection, so there is nothing to return.

It has nothing to do with the lengths of the arrays.

The other answers are telling you how you can remove a set of numbers from another set. Reading your question I think you want what's in the first but not in the second, and viceversa:

var numbers1 = new [] { 2.0, 2.1, 2.2, 2.3, 2.4, 2.5 };
var numbers2 = new [] { 2.2, 2.8 };

var intersect = numbers1.Intersect(numbers2);
var diff = numbers1.Concat(numbers2).Except(intersect);
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!