索引超出了数组错误 (C#) 的范围

本文关键字:范围 错误 数组 索引 | 更新日期: 2023-09-27 18:33:10

>我有以下一段代码从列表框中获取值。我选择了三位老师。当"i"值达到 3 时,它显示"索引超出数组范围"错误

    string selectedTeachers = Request["SelectedTeachersList"];
    int[] teachers_ID = Array.ConvertAll(selectedTeachers.Split(','), int.Parse);
    for (int i = 0; i <= teachers_ID.Length; i++)
    {
      int Id = teachers_ID[i];
    }

索引超出了数组错误 (C#) 的范围

数组

是从零开始的索引,数组中的第一个元素将具有零索引,最后一个元素将比数组大小少一个,因此它必须比arry的长度少一个。

for (int i = 0; i < teachers_ID.Length; i++)

C# 数组的索引为零;也就是说,数组索引从零开始。

在 MSDN 阵列教程中阅读有关阵列的详细信息

你应该这样做

for (int i = 0; i < teachers_ID.Length; i++)

(小于和小于或等于运算符)

如果数组有 10 个元素,则可以从索引 0 到 9 访问它们。因此,当 i == 10 时,for 子句应退出。在你的代码中,i==10 仍然被执行,然后你显然会得到一个异常。

在这里使用foreach,使用起来很简单

foreach(int i in teachers_ID)
    int Id = i;

在这种情况下,您不必担心数组中的元素数量。您收到"索引超出数组范围"错误,因为C# 数组的索引为零。