相反的Intersect()

相交可用于查找两个集合之间的匹配项,如下所示:

// Assign two arrays.

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

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

// Call Intersect extension method.

var intersect = array1.Intersect(array2);

// Write intersection to screen.

foreach (int value in intersect)

{

Console.WriteLine(value); // Output: 2, 3

}

但是我想要实现的却是相反的,我想列出 :

// Assign two arrays.

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

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

// Call "NonIntersect" extension method.

var intersect = array1.NonIntersect(array2); // I've made up the NonIntersect method

// Write intersection to screen.

foreach (int value in intersect)

{

Console.WriteLine(value); // Output: 4

}

回答:

如前所述,如果您希望得到4,则可以这样进行:

var nonintersect = array2.Except(array1);

如果您想要真正的非相交(也包括1和4),那么就可以做到这一点:

var nonintersect = array1.Except(array2).Union( array2.Except(array1));

这不是性能最高的解决方案,但是对于较小的列表,它应该可以正常工作。

以上是 相反的Intersect() 的全部内容, 来源链接: utcz.com/qa/414813.html

回到顶部