IList.Contains(string [])如何在C#中?

Mik*_*sen 3 c# linq

我正在寻找一种用字符串数组参数调用IList.Contains的快速方法

有没有办法做到这一点:

val[] = {"first", "second"}

var temp = from i in items
           where i.list.Contains(val)
           select i;
Run Code Online (Sandbox Code Playgroud)

Dan*_*mov 6

如果你想检查是否i.list含有两种 "first""second":

var val = new [] { "first", "second" };
var temp = from i in items
           where val.Any (i.list.Contains)
           select i;
Run Code Online (Sandbox Code Playgroud)

如果要检查是否i.list包含两者 "first""second":

var val = new [] { "first", "second" };
var temp = from i in items
           where val.All (i.list.Contains)
           select i;
Run Code Online (Sandbox Code Playgroud)

但是,如果性能至关重要(想想在数百个项目的循环中调用),那么使用Hermit建议的HashSet交叉点会更合适.


Ser*_*kiy 5

var temp = from i in items
           where i.list.Any(x => val.Contains(x)) 
           select i;
Run Code Online (Sandbox Code Playgroud)

使用All如果所有列表项应该是值