c# - LINQ Any - 总是返回 false

标签 c# linq

我有一个第三方网格,我正在使用 LINQ 检查其上的所有行 (GetRows()) - 检查特定单元格 (_ObjectKey) 包含值。我想为此使用 LINQ Any 方法。

但我的语句总是返回 false,即使 sentGrid 确实 包含该值。有明显的错误吗?

if (sentGrid.GetRows().Any(r => r.Cells[_ObjectKey].Value == theValue) == false)

最佳答案

此问题是由于使用 == 而不是 .Equals 比较两个对象类型造成的。

最终代码:

// Add items to target grid if they're not already there
if(!sentGrid.GetRows().Any(r => r.Cells[_ObjectKey].Value.Equals(theValue)))
{
   sentGrid.AddItem(theValue);
}

关于c# - LINQ Any - 总是返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24267301/

相关文章:

c# - 短信的 .NET 代码

c# - 如何在 C# 中将流程指令添加到 XML 文件

c# - WPU SQLite.Net.SQLiteConnection.Query 编码问题

c# - 动态实例化 List<I>

c# - 如何正确地将 TextBox 文本与 ViewModel 属性绑定(bind)

linq - 使用 Linq-to-XML 插入,带线程

c# - 使用 LINQ 优化两个列表中的比较

c# - 分块加载表

c# - LINQ-to-MongoDB - 仅当 2 列之间的值匹配时返回列表

c# - 通过 ILGenerator 调用带谓词表达式的 LINQ