我要写搜索查询。在那个查询中,我有一个像这样的字符串列表:
var listWords=new List<string>(){"Hello","Home","dog","what"};
我还有客户名单。如果客户的姓名至少包含 listWords 中的一项,我该如何搜索:
jack 家
热狗
什么一只大狗
尝试过:
var prodList = events.Where(x =>listWords.IndexOf(x.Name.Trim().ToLower()) != -1).ToList();
最佳答案
使用 .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?
关于c# - 如何使用 Linq 在字符串中搜索列表的任何项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45790528/