Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 索引超出了数组字符串的边界_C#_Arrays - Fatal编程技术网

C# 索引超出了数组字符串的边界

C# 索引超出了数组字符串的边界,c#,arrays,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

下面的代码有一个错误:这里我的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);
            }
        }
for(int k=0;k
当然,我的代码中有一些错误,但我无法找出错误。。请帮我理解错误

谢谢

尝试添加(在for循环的末尾):


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

您正试图在新的空字符数组上拆分文本。这将为您提供一个包含一项的数组,即
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);
    }
}

将拆分字符串替换为用作delimeter的文本。

文本数据的长度是多少[]?显然,您的循环一直运行到
pagedata.length
,但它高于
pagedata.split(新字符[0])。length
-textdata[k]超出了范围。我们无法真正帮助您。Pagedata.Length>Split.NewChar.Length,因此您的搜索内容不一致。正则表达式可能会有所帮助。
pagedata.length
pagedata
中的字符数,但是循环变量
k
被用作
texdata
的索引,这是拆分
pagedata
的结果。这两者不一定相等。@Maharshi,您希望textdata[]包含什么内容?(是否将是单个字符/单词/行/等)?它看起来像是在“0”上拆分页面数据。因此,textdata[k],k应该是0,数组的第一个元素集应该总是在那里。事实上,textdata[k],只要他在pagedata中传入了超过0个字符,就会始终在0位置产生一个结果。得到我的位在变量k中使用了57个。呃,不管怎样,patricks answer是一个好答案。使用foreach循环总是比在for循环后面做数学运算更容易。@jbutler483:没关系。
foreach
循环将为您完成这项工作。
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);
    }
}