获得独特的元素

时间:2014-06-27 07:58:41

标签: c# linq collections

我有

int[] array1 = { 1, 2, 3 };
int[] array2 = { 2, 3, 4 };

使用var intersect = array1.Intersect(array2);我得到了

2
3

但我需要

  1
  4

你能否告诉我如何使用Linq做到这一点?

2 个答案:

答案 0 :(得分:6)

array1.Union(array2).Except(array1.Intersect(array2))

说明:

  1. 首先计算两个序列的集合:1, 2, 3, 4
  2. 您正在计算集合的交集:2, 3
  3. 您正在寻找所有项目和交叉点之间的设置差异:1, 4

答案 1 :(得分:0)

试试这个:

    int[] array1 = { 1, 2, 3 };
    int[] array2 = { 2, 3, 4 };

    var result = array1.Concat(array2).Except(array1.Intersect(array2));
    foreach (var item in result)
    MessageBox.Show(item.ToString());

输出:

  

1

     

4