我正在尝试在 Linq 查询中的字符串数组上使用 Array.Contains:
var otherMatchingDevices = from d in selectedDevices
from c in mldb.Companies
where d.CompanyID == c.CompanyID && c.Deleted == 0
where searchTerms.Contains(d.Name.ToString(), StringComparer.CurrentCultureIgnoreCase) || searchTerms.Contains(c.CompanyName.ToString(), StringComparer.CurrentCultureIgnoreCase)
select d;
评估查询时,它会因“用于查询运算符'包含'的不支持的重载而崩溃。
我使用 StringComparer 测试了这段代码,它工作正常并打印出“fOO”:
string[] sList = { "fOO", "bar" };
string[] array = { "foo" };
List<string> stringlist = sList.ToList();
var qry = from s in stringlist
where array.Contains(s, StringComparer.CurrentCultureIgnoreCase)
select s;
if (qry.Count() > 0) Console.WriteLine(qry.First().ToString());
谁能告诉我如何在 Linq 查询中使用不区分大小写的 Array.Contains?我不想转换原始字符串 ToUpper() 或 ToLower() 因为它很昂贵并且会更改原始数据。