在 LINQ 查询的 Where 子句中使用 string.compare

8

我在使用linq查询的Where子句中,对于如何使用string.compare函数的确切语法有些困惑。以下是我目前的代码:

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

这是否可能,还是我完全走错了方向?

Rhonda


String.Compare() 返回一个整数。 - jrummell
你想做什么?你正在使用ContainsCompare... - jrummell
2个回答

12

如果您想检查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主要用于确定排序顺序。

0

如果你想按照相等匹配,我相信你要找的是Equals

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接