我要写搜索查询。在那个查询中,我有一个像这样的字符串列表:
var listWords=new List<string>(){"Hello","Home","dog","what"};
我也有客户名单。如何搜索客户的名称是否包含listWords中的至少一个项目:
杰克主页
热狗
什么一只大狗
尝试:
var prodList = events.Where(x =>listWords.IndexOf(x.Name.Trim().ToLower()) != -1).ToList();
答案 0 :(得分:4)
使用.Where
和.Any
:
var result = events.Where(c => listWords.Any(w => c.Name.Contains(w)));
您的解决方案的问题在于您将字符串转换为小写字母,但单词集合的字符大写为大写。在这种情况下,它将找不到匹配项: How can I make Array.Contains case-insensitive on a string array?