我正在尝试比较C#中的两个字符串,因为我使用Interop接口从Excel中提取它们。我的代码如下:
public Boolean isSameEdge(Edge e)
{
Boolean result = false;
String e1 = e.getNode1();
String e2 = e.getNode2();
int s1 = String.Compare(e1, Node1);
int s2 = String.Compare(e2, Node2);
if (s2 == 0 && s1 == 0)
result = true;
return result;
}
我正在调试代码,我发现e1和Node1是完全相同的字符串,因为它们应该是。然而,String.Compare为s1返回1,为s2返回-1。救命啊!
答案 0 :(得分:4)
假设String.Compare()没有错误是非常安全的。这些字符串可能只是看起来相同。注意像(char)0这样的不可打印的字符。使用String.ToCharArray()进行诊断。