我在查找linq查询的Where子句中使用string.compare的确切语法时遇到了一些麻烦。以下是我到目前为止的情况。
filteredApplications = AllApplications.Where(x => x.Name.Contains(string.Compare(x.Name, txtSearch.Text, StringComparison.OrdinalIgnoreCase))).ToList();
这甚至可能还是我在错误的树上吠叫?
朗达
答案 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 integer。 string.Compare
主要用于确定排序顺序。
答案 1 :(得分:0)
如果您希望通过平等匹配,我相信您正在寻找Equals
:
filteredApplications = AllApplications.Where(x => x.Name.Equals(txtSearch.Text, StringComparison.OrdinalIgnoreCase)).ToList();