我想过滤结果根据字符串列表,如下所示:
List<string> filters = {"a", "b", "c", "d"};
var results = (from R in db.Entries
where R.word.StartsWith(filters[0])
||R.word.StartsWith(filters[1])
||R.word.StartsWith(filters[2])
||...
我不知道我的过滤器列表的长度如何在LINQ中动态查询?
提前致谢。
答案 0 :(得分:5)
这在Linq中有点不同,反之亦然
使用.Contains()
这样的事情:
from r in db.entries
where filters.contains (r.word.substring(0,1))
答案 1 :(得分:5)
你应该能够这样做:
var results = db.Entries
.Where(r => filters.Any(f => r.word.StartsWith(f)));
扩展方法Any
是一种折叠&#34;将一系列OR ||
应用于列表到一个调用中。