c# - 比较 .NET 中的字符串

标签 c# .net string

我陷入了一个巨大的误会......

我有一个带有字符串组件 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/

相关文章:

c# - 使用 LockBit 时出现 AccessViolation

c# - Xml Deserializer 反序列化任何数据类型

Python乘法表,与字符串分开

html - 有没有办法快速将 NSAttributedString 转换为 HTML?

c# - 在 C# 中使用 Amadeus Soap4.0

c# - 成员引用和评估的分配顺序

c# - 任务 WhenAll 用法

c# - 在.NET中,如何制作不显示在windows窗体上的自定义控件?

c# - .NET 读取 .lnk 文件的二进制内容

c - 比较两个相同长度字符串的最快方法