【发布时间】:2024-05-16 05:15:02
【问题描述】:
这是我的代码:
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 函数而不是比较器中的 Equals,我不确定如何实现。
我该怎么办?
【问题讨论】:
-
GetHashCode 不能保证防止冲突,因此您可以确定还有更多的事情发生。
标签: c# .net linq linq-to-sql iequalitycomparer