我收到了这个错误:
Index and length must refer to a location within the string.
Parameter name: length
使用此代码:
string a1 = ddlweek.Text.Substring(0, 8);
string a3 = ddlweek.Text.Substring(10, 14);
这是什么意思?
答案 0 :(得分:12)
如果字符串(ddlweek)的长度不超过23个字符,则会出现此错误:
string ddlweek = "12345678901234567890123";//This is NOK
string a1 = ddlweek.Substring(0, 8);
string a3 = ddlweek.Substring(10, 14);
Console.WriteLine("a1="+a1);
Console.WriteLine("a3="+a3);
Console.ReadLine();
字符串长度至少为24个字符..
您可以考虑添加if
以确保一切正常..
string ddlweek = "123456789012345678901234";//This is OK
string a1 = ddlweek.Substring(0, 8);
string a3 = ddlweek.Substring(10, 14);
Console.WriteLine("a1="+a1);
Console.WriteLine("a3="+a3);
Console.ReadLine();
答案 1 :(得分:4)
这意味着您的ddlweek.Text
字符串包含的字符数少于您在Substring(index, length)
中所要求的字符数。
示例:
if (ddlweek.Text.Length >= 8)
string a1 = ddlweek.Text.Substring(0, 8);
答案 2 :(得分:3)
当您超过总角色的结束限制时会发生此错误。 例如
string name = "iLovePakistan"; // Here i want to print only Pakistan
string name2 = name.Substring(5, 150); // this code will throw same error. just replace 150 with name.Length - 5
string name3 = name.Substring(5, name.Length - 5); // i skip firt 5 charchers then name.Length-5 means print rest 8 characters.
string name4 = name.Substring(5, 8); // This will do exactly as name3
Console.WriteLine(name4);
答案 3 :(得分:2)
这只是意味着你要求一个不存在的 ddlweek 的子字符串(即,它的长度超过24个字符)。
答案 4 :(得分:1)
Substring(startIndex,length);
startIndex :获取要获取的第一个值。 0开始。
长度:获得的值的大小(将获得多少个数字)。
string Code = "KN32KLSW";
string str = Code.Substring(0,2);
Console.WriteLine("Value : ",str);
在控制台屏幕上: KN
string str = Code.Substring(3,4);
Console.WriteLine("Value : ",str);
在控制台屏幕上: 2KLS