LINQ中的全字搜索

Jib*_*hew 13 c# linq

如何在LINQ中搜索整个单词?

如果我在字符串列表中搜索单词"car",{"carpenter","car repair","carrying","car workshop"}结果应该只是"汽车修理"和"汽车工作室".我尝试下面的代码

  List<string> _tags = (from item in string_array
                                 where item.ToLower().Contains(search_term)
                                 select item).ToList();
Run Code Online (Sandbox Code Playgroud)

但是,包含总是返回相似的单词,我在SO Linq Regex上找到了这个链接,用于全字搜索 ,这并没有提供使用Regx的完整答案.

因此,任何人都可以帮助在Regx中编写答案,或者是与Linq一起使用的任何其他选项.

Rob*_*Rob 17

试试这个:

var result = items.Where(i => i.Split(' ').Any(word => word.ToLower() == "car")).ToList();
Run Code Online (Sandbox Code Playgroud)

如果您需要考虑逗号,可以使用此代码:

var reg = new Regex("\\bcar\\b", RegexOptions.IgnoreCase);

var items = new [] { "carpenter", "car repair", "carrying", "car workshop", "car, repair", "car. repair", "car,repair" };
var result = items.Where(word => reg.IsMatch(word)).ToList();
Run Code Online (Sandbox Code Playgroud)

得到:

car repair 
car workshop 
car, repair 
car. repair 
car,repair
Run Code Online (Sandbox Code Playgroud)