当字符串中有反斜杠时IndexOf失败 - 为什么?

时间:2012-08-03 03:21:34

标签: c# string

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

string tmpString = "acg2xs5d.dui";

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

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


这返回-1;无论如何。

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

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

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

2 个答案:

答案 0 :(得分:15)

你需要使用 tmpString2.IndexOf(@tmpString)

而不是 tmpString.IndexOf(@tmpString2)

除订单外一切正常。 “\”不是转义字符,因为你在字符串之前使用“@”。

答案 1 :(得分:-2)

在搜索之前在字符串中包含一个斜杠。使用以下代码:

string tmpString = "acg2xs5d.dui"; 
string tmpString2 = "c:\\acg2xs5d.dui";
int a = tmpString2.IndexOf(tmpString); //returns 3