2011-12-16 166 views
-3

我有这样的代码:XML字符串索引超出范围

string Str = "<String><MoreString>"; 
int Start = Str.LastIndexOf('<') + 1; 
int End = Str.IndexOf('>', Start); 
string S = Str.Substring(Start, End); 

如果str只是"<String>",那么它工作正常,但如果str是"<String><MoreString>",那么它会抛出一个索引超出范围的错误。是因为“<”,“>”字符?

+0

为什么不使用`Split`方法呢? – 2011-12-16 12:32:44

回答

7

Substring不能这样工作。

例子:

String myString = "abc"; 
bool test1 = myString.Substring(2, 1).Equals("c"); // This is true. 

第二个参数是你要选择的字符数,那么你应该做的:

string S = Str.Substring(Start, End-Start); 
1

当你将鼠标悬停在Str.Substring你可以看到函数你看到这个函数的第二个参数是length

这将工作

string Str = "<String><MoreString>"; 
int Start = Str.LastIndexOf('<') + 1; 
int End = Str.IndexOf('>', Start); 
string S = Str.Substring(Start, End - Start); 
相关问题