我在使用linq查询的Where子句中,对于如何使用string.compare函数的确切语法有些困惑。以下是我目前的代码:
filteredApplications = AllApplications.Where(x => x.Name.Contains(string.Compare(x.Name, txtSearch.Text, StringComparison.OrdinalIgnoreCase))).ToList();
这是否可能,还是我完全走错了方向?
Rhonda
我在使用linq查询的Where子句中,对于如何使用string.compare函数的确切语法有些困惑。以下是我目前的代码:
filteredApplications = AllApplications.Where(x => x.Name.Contains(string.Compare(x.Name, txtSearch.Text, StringComparison.OrdinalIgnoreCase))).ToList();
这是否可能,还是我完全走错了方向?
Rhonda
如果您想检查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
返回一个整数。 string.Compare
主要用于确定排序顺序。如果你想按照相等匹配,我相信你要找的是Equals
:
filteredApplications = AllApplications.Where(x => x.Name.Equals(txtSearch.Text, StringComparison.OrdinalIgnoreCase)).ToList();
String.Compare()
返回一个整数。 - jrummellContains
和Compare
... - jrummell