次のエラーが表示されます。
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);
これは何を意味するのでしょうか?
文字列 (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();
これは、ddlweek.Text
文字列に含まれる文字数が で要求した文字数よりも少ないことを意味しますSubstring(index, length)
。
例:
if (ddlweek.Text.Length >= 8)
string a1 = ddlweek.Text.Substring(0, 8);
このエラーは、合計文字数の上限を超えた場合に発生します。例えば
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);
これは、存在しないddlweekの部分文字列 (つまり、長さが 24 文字を超える) を要求していることを意味します。