gpt4 book ai didi

c# - DataRow 比较未按预期工作

转载 作者:行者123 更新时间:2023-11-30 13:11:01 24 4
gpt4 key购买 nike

我正在尝试比较循环中的两个 DataRow。但是,以下 if 语句不会返回 true:

if (dt1.Rows[0]["Name"] == dt2.Rows[b]["Name"]) {
// This never executes
}

但是,如果我将 .ToString() 添加到每个 DataRow 的末尾,if 语句将返回 true:

if (dt1.Rows[0]["Name"].ToString() == dt2.Rows[b]["Name"].ToString()) {
// This now executes
}

“名称”列来自同一个表/列。所以问题很简单...我做错了什么?

谢谢
斯蒂芬

最佳答案

这些单元格包含对象,因此您正在进行对象比较,这只是进行引用比较,这与值比较不同。它问的问题是“这两个对象真的是同一个对象吗?”,本质上它们指的是同一个对象,因此是“引用比较”。当您执行 ToString() 调用时,您就是在进行字符串比较。这就是它起作用的原因。

Here's a link to MS's discussion of Operator== and comparison.

关于c# - DataRow 比较未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/614713/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com