相反的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