使用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;由于
尝试合并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