我正在寻找一种用字符串数组参数调用IList.Contains的快速方法
有没有办法做到这一点:
val[] = {"first", "second"}
var temp = from i in items
where i.list.Contains(val)
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.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交叉点会更合适.
var temp = from i in items
where i.list.Any(x => val.Contains(x))
select i;
Run Code Online (Sandbox Code Playgroud)
使用All如果所有列表项应该是值