索引超出了数组字符串的范围

时间:2014-08-29 12:18:03

标签: c# arrays

我收到以下代码的错误:这里我的pagedata.length是495,我在变量k中使用了57个。

for(int k = 0; k < pagedata.Length;k++)
        {
            string[] textdata = pagedata.Split(new char[0]);
            string stringforemail = textdata[k];
            if (stringforemail.Contains("@") && stringforemail.Contains("."))
            {
                TableRow tr = new TableRow();
                //tr.BorderStyle = BorderStyle.Solid;
                TableCell tc = new TableCell();
                tc.BorderStyle = BorderStyle.Solid;
                tc.Text = stringforemail;
                tr.Cells.Add(tc);
                Table1.Rows.Add(tr);
            }
        }

因为我的代码有问题,但我无法弄清楚错误..请帮我理解错误。

谢谢

2 个答案:

答案 0 :(得分:2)

您正在尝试将文本拆分为新的空字符数组。这会为您提供一个包含一个项目的数组,值为pagedata

因此,您的textdata[k]将失败,因为它使用pagedata的长度,该长度大于1(数组的长度)。

我不知道你要用它做什么,但你的代码应该是这样的:

string[] textdata = pagedata.Split("your split string");

foreach (string stringforemail in textdata)
{
    if (stringforemail.Contains("@") && stringforemail.Contains("."))
    {
        TableRow tr = new TableRow();
        //tr.BorderStyle = BorderStyle.Solid;
        TableCell tc = new TableCell();
        tc.BorderStyle = BorderStyle.Solid;
        tc.Text = stringforemail;
        tr.Cells.Add(tc);
        Table1.Rows.Add(tr);
    }
}

your split string替换为您用作分隔符的文本。

答案 1 :(得分:0)

尝试添加(在for循环结束时):

if(k==textdata.Length)
{
break;
}

这样一旦完成,循环就会中断。