2012-11-10 52 views
2

有:查找集合交集,並排除

IEnumerable<int> oldValues; // Example: [1, 2, 3, 4] 
IEnumerable<int> newValues; // Example: [3, 4, 5, 6] 

極品:

IEnumerable<int> removedValues; // Example: [1, 2] 
IEnumerable<int> addedValues; // Example: [5, 6] 

漂亮的LINQ解決方案的任何想法?

回答

7

您需要Enumerable.Except - 此方法返回第一個序列中不出現在第二個序列中的那些元素。

IEnumerable<int> removedValued = oldValues.Except(newValues); 
IEnumerable<int> addedValues = newValues.Except(oldValues);