C# 使用LINQ C查找Array2中Array1中正好两个项目的副本#
说我有一个C# 使用LINQ C查找Array2中Array1中正好两个项目的副本#,c#,linq,intersect,C#,Linq,Intersect,说我有一个 Array1 [1,2,3] 以及数组列表Array2[3,2,4]Array3[2,16,5] 我只需要返回列表中正好包含Array1中两个整数的元素。在这种情况下,由于整数2和3相交,所以数组为2; 谢谢尝试组合Where()和Count(): var matches=newint[]{1,2,3}; var数据=新列表 { 新的int[]{3,2,4}, 新int[]{2,16,5} }; var result=data.Where(x=>x.Count(matches.Co
Array1 [1,2,3]
以及数组列表Array2[3,2,4]Array3[2,16,5]
我只需要返回列表中正好包含Array1中两个整数的元素。在这种情况下,由于整数2和3相交,所以数组为2;
谢谢尝试组合Where()
和Count()
:
var matches=newint[]{1,2,3};
var数据=新列表
{
新的int[]{3,2,4},
新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
如果该列表不是数组列表,而是对象列表,每个对象都有一个数组作为字段,该怎么办。很抱歉,如果这是哑的,但是…
来自a.ArrayProperty.Intesect(…
from a in arrays where a.Intersect(Array1).Count() == 2 select a
//arrays contains Array2 and Array3