我陷入了一个巨大的误会......
我有一个带有字符串组件 ID 的对象,我尝试按以下方式将此 ID 与代码中的字符串进行比较...
if(object.ID == "8jh0086s)
{
//Execute code
}
但是,在调试时,我可以看到ID实际上是“8jh0086s”,但代码没有被执行。我也尝试过以下方法
if(String.Compare(object.ID,"8jh0086s")==0)
{
//Execute code
}
以及
if(object.ID.Equals("8jh0086s"))
{
//Execute code
}
我仍然一无所获......但是我确实注意到,当我调试字符串 object.ID 中的“0”时,它没有一行,就像比较字符串中的一行一样。但我不知道这是否有影响。它不是字母“o”或“O”,它是一个零,但没有一条线穿过它。
有什么想法吗?
最佳答案
我怀疑您的字符串中有一些不容易明显的东西,例如不可打印的字符。
尝试通过此运行两个字符串来查看它们的实际字节值。两个数组应包含相同的数值。
var test1 = System.Text.Encoding.UTF8.GetBytes(object.ID);
var test2 = System.Text.Encoding.UTF8.GetBytes("8jh0086s");
====第一条评论的更新====
执行此操作的一个非常简单的方法是使用立即窗口或监视语句来执行这些语句并查看结果,而无需修改代码。
关于c# - 比较 .NET 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21393024/