c# - 在 C# 中测试 DataColumn 值的相等性

标签 c# equality datacolumn

当列类型未知时,我编写了一些代码来测试 DataTables 中列值之间的相等性。

直接这样测试:

row["Foo"] == row["Bar"]

总是返回 false,大概是因为对象的 Equals 实现使用了 ReferenceEquals。

所以我采取了:

row["Foo"].ToString() == row["Bar"].ToString()

这行得通(至少对于我目前遇到的情况是这样),但它似乎有点,好吧,古怪。

谁能想到我不应该这样做的原因,或者建议更好的方法?请记住,我在设计时不知道列类型,因此无法进行转换。

谢谢

大卫

最佳答案

试试 row["Foo"].Equals(row["bar"])

当您使用 == 比较对象并且没有预定义或用户定义的 == 运算符时,C# 将使用引用相等性来比较它们。如果你想调用Equals方法,你需要把它写成一个方法调用。

关于c# - 在 C# 中测试 DataColumn 值的相等性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3118334/

相关文章:

javascript - 为什么检查三个字符串之间的相等性不起作用,但检查三个数字之间的相等性呢?

rust - 为什么 PartialEq 返回一个 bool 值,当 PartialOrd 更细微并返回 Option<Ordering> 时?

mysql - 为具有前 3 个计数的列获取表的列名

C# 407 需要代理身份验证

c# - If 语句 - 将数据读取器值与日期时间进行比较

comparison - 测试 float 是否等于 0.0 是否安全?

c# - 将数据行添加到预定义索引处的数据表

C# - 如何判断 DataColumn 是否支持空值?

C# AssemblyVersion 3 位数,用于 NuGet 的 PreRelease 版本控制

c# - Parallel.ForEach 不喜欢 IList