c# - 索引超出数组范围 : IndexOutOfRangeException was unhandled by user code

标签 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.            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. }

我在第 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,那么此代码中还有其他错误/缺失。

关于c# - 索引超出数组范围 : IndexOutOfRangeException was unhandled by user code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12501685/

相关文章:

c# - 在 Unity 中使用捏合手势缩放 ScrollView 内容的正确方法是什么?

c# - 使用新的 csproj 在 PDB 中嵌入 C# 源代码

c# - 如何存储可部署的 C# 应用程序的设置?

php - 在 PHP 中,是否可以使用 PDO 获得一维数组?

c# - 使用函数 ARM 模板时出现现有资源错误

c# - 从 .net core 自定义日志记录到应用程序见解

javascript - 如何对这个 javascript 对象进行排序?

python - 删除数组中的每第 n 个元素

ruby-on-rails - 使用 Ruby 一次处理数组的 X 个元素的选项

javascript - 连续循环遍历给定数量项目的数据集