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

时间:2010-06-25 13:25:53

标签: c# equality datacolumn

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

直接测试:

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

总是导致错误,大概是因为对象的Equals实现使用了ReferenceEquals。

所以我采取了:

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

这是有效的(至少对于我到目前为止遇到的情况而言),但它看起来有点,很好,很奇怪。

任何人都可以想到我不应该这样做的原因,或者建议一个更好的方法吗?请记住,我不知道设计时的列类型,因此不能选择转换。

由于

大卫

3 个答案:

答案 0 :(得分:3)

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

使用==比较对象并且没有预定义或用户定义的==运算符时,C#将使用引用相等性对它们进行比较。如果要调用Equals方法,则需要将其作为方法调用写出来。

答案 1 :(得分:1)

row["Foo"].Equals(row["Bar"])

答案 2 :(得分:1)

如果它们是字符串,为什么不使用Equals。

row["foo"].ToString().Equals(row["Bar"].ToString());