以两种不同的方式比较两个字符串

时间:2015-01-20 12:12:06

标签: c# string

我用C#编写了这个小程序

private void Form1_Load(object sender, EventArgs e)
{
    MessageBox.Show(("7797302D875A8922EBFC7DECBD352FE88F35642F" == "‎7797302D875A8922EBFC7DECBD352FE88F35642F").ToString());

    var a = "7797302D875A8922EBFC7DECBD352FE88F35642F";
    var b = "7797302D875A8922EBFC7DECBD352FE88F35642F";
    MessageBox.Show((a == b).ToString());

}

第一个messageBox显示“False”,而Messagebox显示“True”。

我的问题是:为什么我不能将这两个字符串与==运算符进行比较?

2 个答案:

答案 0 :(得分:10)

您的第二个字符串具有不可见的从左到右标记字符(U+200E)

看起来只是另一个复制粘贴问题。

enter image description here

答案 1 :(得分:3)

差异不是由比较引起的,而是你的测试字符串字符串。

第一个案例的第二个字符串以不可见的0x200E开头,unicode 从左到右标记