查找集合交集并排除

Ser*_*lov 2 .net c# linq

具有:

IEnumerable<int> oldValues; // Example: [1, 2, 3, 4]
IEnumerable<int> newValues; // Example: [3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)

需要:

IEnumerable<int> removedValues; // Example: [1, 2]
IEnumerable<int> addedValues;   // Example: [5, 6]
Run Code Online (Sandbox Code Playgroud)

任何好的LINQ解决方案的想法?

Ser*_*kiy 7

您需要Enumerable.Except - 此方法返回第一个序列中未出现在第二个序列中的那些元素.

IEnumerable<int> removedValued = oldValues.Except(newValues);
IEnumerable<int> addedValues = newValues.Except(oldValues);
Run Code Online (Sandbox Code Playgroud)