我有以下代码从Listbox获取值。我选了三位老师。当'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];
}
答案 0 :(得分:5)
数组是基于零的索引,数组中的第一个元素将具有零索引,并且最后一个元素的数量小于数组的大小,因此它必须小于arry的长度。
for (int i = 0; i < teachers_ID.Length; i++)
C#数组是零索引;也就是说,数组索引从零开始。
详细了解MSDN Arrays Tutorial
中的数组答案 1 :(得分:2)
你应该做
for (int i = 0; i < teachers_ID.Length; i++)
(小到和小或等于运营商)
如果一个数组有10个元素,你可以从索引0到9访问它们。因此,当i == 10时,for子句应该退出。在你的代码中,i == 10仍然执行然后你显然得到了一个异常。
答案 2 :(得分:1)
在这里使用foreach
这很简单
foreach(int i in teachers_ID)
int Id = i;
在这种情况下,您无需担心数组中的元素数量。 你得到的索引超出了数组的范围。因为错误 C#数组是零索引。