为什么当字符串中有反斜杠“\”时 IndexOf 会失败?

string tmpString = "acg2xs5d.dui";

string tmpString2 = @"c:\acg2xs5d.dui";

MessageBox.Show(tmpString.IndexOf(@tmpString2).ToString());

这将返回 -1;无论。

如果我将 tmpString2 更改为“acg2xs5d.dui”并删除“c:\”,它会按预期返回 0。

似乎“\”导致它给出“-1”的错误结果。

为什么会这样,我该如何解决/陷阱?

最佳答案

你只需要使用tmpString2.IndexOf(@tmpString)
代替tmpString.IndexOf(@tmpString2)
除了订单之外,一切都是正确的。 "\"不是转义字符,因为您在字符串前使用了 "@"。

关于c# - 当字符串中有反斜杠时,IndexOf 失败——为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11788795/

10-13 06:07