繁体   English   中英

Linq to SQL:使用字符串数组中的包含来部分匹配字符串

[英]Linq to SQL: Partial matching strings using contains on an array of strings

这是我的代码:

string[] customerNames = searchModel.CustomerName.Split(',');
 query = query.Where(d => customerNames.Contains(d.CustomerName, comparer) || customerNames.Contains(d.Company1.CompanyName, comparer));

如果您只是在寻找完全匹配的内容,则可以使用。 但是我想部分匹配,即:如果customerNames包含元素'ell' ,则如果d.CustomerName'Hello' ,它将选择d,因为'ell'在'Hello'中

我尝试覆盖EqualityComparer,但我相信它正在尝试使用GetHashCode函数而不是Comparer中的Equals ,我不确定该如何实现。

我应该怎么做?

string[] customerNames = searchModel.CustomerName.Split(',');
query = query.Where(d => customerNames.Any(c => c.Contains(d.CustomerName)) || customerNames.Any(c => c.Contains(d.Company1.CompanyName)));

但是您应该知道,当customerNames包含很多项时,它可能会变慢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM