我有一个包含供应商名称的清单.说
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来获得此结果,但我不知道如何使用它来满足这一特殊需求.
在这种情况下我通常做的是将单词拆分成一个集合,然后执行以下操作:
var searchopts = SearchKey.Split(' ').ToList();
supplierListQuery = supplierListQuery
.Where(x => searchopts.Any(y=> x.SupplierName.Contains(y)));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1031 次 |
| 最近记录: |