如何使用LINQ执行单词搜索?

Nit*_*aul 2 c# linq

我有一个包含供应商名称的清单.说

SuppId   Supplier Name
----------------------------------
1        Aardema & Whitelaw
2        Aafedt Forde Gray
3        Whitelaw & Sears-Ewald
Run Code Online (Sandbox Code Playgroud)

使用以下LINQ查询

supplierListQuery = supplierListQuery.Where(x => x.SupplierName.Contains(SearchKey));
Run Code Online (Sandbox Code Playgroud)

我可以在以下条件下正确返回记录,

1)如果我使用搜索字符串作为"Whitelaw&Sears-Ewald",它将返回第3条记录.

2)如果我使用"Whitelaw"或" Sears-Ewald",它将返回第3条记录.

但是,如果我将搜索字符串作为"Whitelaw Sears-Ewald",我怎么能返回第3条记录.它总是返回0条记录.

我可以使用ALL来获得此结果,但我不知道如何使用它来满足这一特殊需求.

Cap*_*chi 7

在这种情况下我通常做的是将单词拆分成一个集合,然后执行以下操作:

var searchopts = SearchKey.Split(' ').ToList();
supplierListQuery = supplierListQuery
    .Where(x => searchopts.Any(y=> x.SupplierName.Contains(y)));
Run Code Online (Sandbox Code Playgroud)

  • 那太有用了.谢谢 (2认同)