在linq查询where子句中使用string.compare

时间:2012-03-28 18:27:05

标签: linq

我在查找linq查询的Where子句中使用string.compare的确切语法时遇到了一些麻烦。以下是我到目前为止的情况。

filteredApplications = AllApplications.Where(x => x.Name.Contains(string.Compare(x.Name, txtSearch.Text, StringComparison.OrdinalIgnoreCase))).ToList();

这甚至可能还是我在错误的树上吠叫?

朗达

2 个答案:

答案 0 :(得分:11)

如果您想查看Name是否包含搜索文字:

AllApplications.Where(x => x.Name.ToUpperInvariant().Contains(txtSearch.Text.ToUpperInvariant()))).ToList();

如果要检查是否相等:

AllApplications.Where(x => string.Equals(x.Name, txtSearch.Text, StringComparison.OrdinalIgnoreCase)).ToList();

在原始查询中,您正在检查x.Name是否包含string.Compare的结果。我假设你没有尝试这样做,因为string.Compare returns an integerstring.Compare主要用于确定排序顺序。

答案 1 :(得分:0)

如果您希望通过平等匹配,我相信您正在寻找Equals

filteredApplications = AllApplications.Where(x => x.Name.Equals(txtSearch.Text, StringComparison.OrdinalIgnoreCase)).ToList();