加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – DataRow比较无法按预期工作

发布时间:2020-12-15 19:48:01 所属栏目:百科 来源:网络整理
导读:我试图在循环中比较两个DataRows.但是,以下if语句不返回true: if (dt1.Rows[0]["Name"] == dt2.Rows[b]["Name"]) { // This never executes} 但是,如果我将.ToString()添加到每个DataRow的末尾,则if语句返回true: if (dt1.Rows[0]["Name"].ToString() == d
我试图在循环中比较两个DataRows.但是,以下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
}

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

谢谢
斯蒂芬

解决方法

作为 itsmatt has said,您的第一个片段正在进行参考比较.调用ToString的另一种方法是使用Object.Equals:

if (Object.Equals(dt1.Rows[0]["Name"],dt2.Rows[b]["Name"])) {
    // stuff
}

使用静态方法而不是实例方法的原因是为了避免空引用的问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读