问题描述
|
净CF
我需要使用子字符串来捕获字符串的中间部分。
txtpart.Text = \"ab12345678cde\";
string item = txtpart.Text.Substring(2,8);
该输出应为12345678。
但是它总是抛出这个异常
System.ArgumentOutOfRangeException:指定的参数超出有效值范围。
除了子串还有其他功能吗?
解决方法
您的代码看起来不错。
查阅Daniel Moth的有关.net cf上的子字符串问题的博客
.net cf上的蛾子字符串错误
最好的祝福
,您的示例应返回
2345678c
而不是12345678
,但这无关紧要。您拥有的代码是有效的,不应引发错误。您是否仅出于示例目的通过了ab12345678cde
?您能告诉我们错误发生时真正传递的是什么吗?
您可以在这里查看代码的执行方式:
http://ideone.com/jufd3
如果您的长度太长,我相信您会得到一个错误,但是不会看到一个错误。
,我知道这是一个老问题,但这可以帮助某人...
这是一个简单的函数,您可以在任何字符串的中间使用\“ get \”:
public static string getBetween(string strSource,string strStart,string strEnd)
{
int Start,End;
if (strSource.Contains(strStart) && strSource.Contains(strEnd))
{
Start = strSource.IndexOf(strStart,0) + strStart.Length;
End = strSource.IndexOf(strEnd,Start);
return strSource.Substring(Start,End - Start);
}
else
{
return \"\";
}
}
并使用它,您可以调用:
string mySelectedText = getBetween(txtpart.Text,\"b\",\"c\");
Debug.WriteLine(mySelectedText);
结果将是12345678
希望能帮助到你。问候