如何用整型数组创建LINQ条件?[duplicate]

e3bfsja2  于 2022-12-06  发布在  其他
关注(0)|答案(2)|浏览(120)

此问题在此处已有答案

Intersect two arrays(2个答案)
两个月前关门了。
我有两个Int数组,我只想保留第二个数组中的元素,第二个数组包含第一个数组的元素。

int [] first = new int[2]  { 1,  2};
int [] second = new int[5]  { 99,  1, 2, 97, 95};

我已经尝试了类似下面的东西。

foreach(int x in first){
second.Where(s=>s==x);
}

但这对我没有帮助因为我需要比较第一个数组中的两个元素

second.Where(s=>s==x[0] && s[1])

如果int更大的话,我需要。你有什么想法,如何得到下面的代码行?

second.Where(s=>s==x[0] && s== x[1] && ... && s==x[n])
67up9zun

67up9zun1#

var elements = second.Where(first.Contains);

也许可以通过.ToList()ToArray()调用将其具体化。
如果第一个列表非常大,您可以考虑一个比.Contains方法更快的版本,但对于您的列表,这将是大材小用。

ma8fv8wu

ma8fv8wu2#

var firstSet = first.ToHashSet();
var result = second.Where(x => firstSet.Contains(x)).ToArray();

相关问题