如何使用Linq搜索字符串中列表的任何项目

时间:2017-08-21 06:28:04

标签: c# entity-framework linq

我要写搜索查询。在那个查询中,我有一个像这样的字符串列表:

var listWords=new List<string>(){"Hello","Home","dog","what"};

我也有客户名单。如何搜索客户的名称是否包含listWords中的至少一个项目:

  • 杰克主页

  • 什么一只大

尝试:

var prodList = events.Where(x =>listWords.IndexOf(x.Name.Trim().ToLower()) != -1).ToList();

1 个答案:

答案 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?