索引超出了数组字符串的范围
我得到以下代码的错误:在这里,我的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);
}
}
因为我的代码中有错误,但我无法弄清楚错误..请帮我理解错误。
谢谢
您试图在新的空字符数组上分割文本。这给你一个项目的数组,值为pagedata
。
因此,您的textdata[k]
将失败,因为它使用的长度大于1(数组长度)的pagedata
。
我不知道你正在尝试用它做,但你的代码看起来应该是这样的:
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
。
它看起来像hes将'pagedata'分解为'0'。 因此,textdata [k],k应该是0,数组的第一个elemenet应该总是在那里。 – DidIReallyWriteThat 2014-08-29 12:25:50
@CalvinSmith:可能,但从帖子不清楚。 – 2014-08-29 12:27:19
实际上,只要他在他的pagedata中传递了超过0个字符,textdata [k]总是会在0的位置 – DidIReallyWriteThat 2014-08-29 12:29:41
尝试加入(在该月底环):
if(k==textdata.Length)
{
break;
}
这样一旦这已经完成,循环将打破。
什么长度是文本数据[]? – jbutler483 2014-08-29 12:20:34
显然你的循环一直运行到'pagedata.Length',但是它比'pagedata.Split(new char [0])更高,length' - textdata [k]超出了界限。 – 2014-08-29 12:20:35
我们无法真正帮助您。 Pagedata.Length> Split.NewChar.Length,因此您在寻找的内容不一致。正则表达式可能会有所帮助。 – DidIReallyWriteThat 2014-08-29 12:23:34