Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.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# 索引超出了数组的边界:用户代码未处理IndexOutOfRangeException_C#_Arrays - Fatal编程技术网

C# 索引超出了数组的边界:用户代码未处理IndexOutOfRangeException

C# 索引超出了数组的边界:用户代码未处理IndexOutOfRangeException,c#,arrays,C#,Arrays,我今天好像要失去它了。有人能帮我找到我做错了什么吗 1. for (int y = 0; y < 5; y++) 2. { 3. IDataReader getLineInfo = DB.GetRS("Select LineText From TIF Where SCRID ='" + scRID + "' AND LineNum='" + y + "'"); 4. if (getLineInfo.Read()) 5. { 6. stri

我今天好像要失去它了。有人能帮我找到我做错了什么吗

1. for (int y = 0; y < 5; y++)
2. {
3.      IDataReader getLineInfo = DB.GetRS("Select LineText From TIF Where SCRID ='" + scRID + "' AND LineNum='" + y + "'");
4.      if (getLineInfo.Read())
5.      {
6.            string[] lineText = new string[y];
7.            lineText[y] = (string)getLineInfo["LineText"];
8.
9.            ((Label)item.FindControl(string.Format("lbl{0}", y))).Text = "<a href='" + lineText[y] + "' target='_blank'> Link</a>";
10.     }
11.     getLineInfo.Dispose();
12.     getLineInfo.Close();
13. }
1。对于(int y=0;y<5;y++)
2.{
3.IDataReader getLineInfo=DB.GetRS(“从TIF中选择LineText,其中SCRID=”“+SCRID+”,LineNum=”“+y+””);
4.if(getLineInfo.Read())
5.      {
6.字符串[]lineText=新字符串[y];
7.lineText[y]=(string)getLineInfo[“lineText”];
8.
9.((Label)item.FindControl(string.Format(“lbl{0}”,y))).Text=“”;
10.     }
11.getLineInfo.Dispose();
12.getLineInfo.Close();
13. }
我在第9行得到了错误。我最初将“y”从1开始,因为没有lineNum==0。。但我想既然数组是从0开始的,我就搞乱了。但这并没有解决我的问题。如果有人能帮我看看我不是什么,我将不胜感激。此外,此页面上没有用户输入,因为我知道使用select语句的整个IDataReader可能不好

如果需要任何额外的信息,我可以把它写进去,感谢任何能提供帮助的人

string[] lineText = new string[y];  // array 0 .. y-1
lineText[y] = ...;                  // y = 1 element too far
另外,
lineText
是在循环内部本地创建的,您只需将
string[]lineText
替换为
string lineText
,然后忘记
y

如果您认为需要
y
,则此代码中还存在其他错误/缺失

另外,
lineText
是在循环内部本地创建的,您只需将
string[]lineText
替换为
string lineText
,然后忘记
y


如果您认为需要
y
,则此代码中还存在其他错误/缺失

您需要像这样声明数组

 string[] lineText = new string[y+1];

您需要像这样声明数组

 string[] lineText = new string[y+1];

有什么好的理由吗

string[] lineText = new string[y];
是在循环中吗? `


此外,如果分配了一个“y”元素数组,那么访问索引“y”处的元素必然会引发异常。在“y”元素数组中,最后一个元素位于索引“y-1”(从0开始)。有什么好的理由吗

string[] lineText = new string[y];
是在循环中吗? `


此外,如果分配了一个“y”元素数组,那么访问索引“y”处的元素必然会引发异常。在“y”元素数组中,最后一个元素位于索引“y-1”(从0开始)。

为什么不使用字符串而不是字符串数组

string lineText = (string)getLineInfo["LineText"];

((Label)item.FindControl(string.Format("lbl{0}", y))).Text = "<a href='" lineText + "' target='_blank'> Link</a>";
string lineText=(string)getLineInfo[“lineText”];
((Label)item.FindControl(string.Format(“lbl{0}”,y))).Text=”“;

为什么不使用字符串而不是字符串数组

string lineText = (string)getLineInfo["LineText"];

((Label)item.FindControl(string.Format("lbl{0}", y))).Text = "<a href='" lineText + "' target='_blank'> Link</a>";
string lineText=(string)getLineInfo[“lineText”];
((Label)item.FindControl(string.Format(“lbl{0}”,y))).Text=”“;

非常感谢,我现在想起来了,不知道为什么我要尝试制作数组。。今天只是其中的一天。谢谢你的帮助非常感谢,我现在想起来了,我不知道为什么我要做一个数组。。今天只是其中的一天。谢谢你的帮助