索引和长度必须指向字符串中的位置.参数名称:长度

Zoy*_*hta 9 asp.net

我收到这个错误:

Index and length must refer to a location within the string.
Parameter name: length
Run Code Online (Sandbox Code Playgroud)

使用此代码:

string a1 = ddlweek.Text.Substring(0, 8);                
string a3 = ddlweek.Text.Substring(10, 14);
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

din*_*erm 13

如果字符串的长度(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();
Run Code Online (Sandbox Code Playgroud)

该字符串应至少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();
Run Code Online (Sandbox Code Playgroud)


Cod*_*der 7

这意味着您的ddlweek.Text字符串包含的字符数少于您在Substring(index, length).

例子:

if (ddlweek.Text.Length >= 8)
    string a1 = ddlweek.Text.Substring(0, 8);  
Run Code Online (Sandbox Code Playgroud)


McG*_*gle 3

这只是意味着您要求的ddlweek子字符串不存在(即长度超过 24 个字符)。