使用linqc#查找Array2中Array1中恰好两个项的重复项

本文关键字:两个 查找 linqc# Array2 Array1 使用 | 更新日期: 2023-09-27 18:17:46

假设我有一个

Array1 [1,2,3]

和数组列表Array2 [3,2,4] Array3 [2,16,5]我只需要返回列表中恰好包含Array1中两个整数的元素。在这个例子中,因为整数2和3相交,所以是Array2;由于

使用linqc#查找Array2中Array1中恰好两个项的重复项

尝试合并Where()Count():

var matches = new int[] { 1, 2, 3 };
var data = new List<int[]>
{
     new int[] { 3, 2, 4 },
     new int[] { 2, 16, 5 }
};
var result = data.Where(x => x.Count(matches.Contains) == 2);

既然是int[],你可以直接使用.Intersect()。例如

from a in arrays where a.Intersect(Array1).Count() == 2 select a
//arrays contains Array2 and Array3