[英]Index was outside the bounds of the array
友人
我遇到一個錯誤,告訴我“索引在數組的邊界之外”,我不知道這是發生了什么,因為在完成for循環並重新進入新的循環之后,它在退出循環之前顯示了變量值。
int[,] arrScr = new int[lstTest.Count, cnt2 + 3];
string[,] arrName = new string[lstTest.Count, cnt2 + 3];
int p;
for (i = 0; i < lstTest.Count; i++)
{
using (DataTableReader dtr3 = ds.Tables["scord_mark_table" + (i + 1).ToString()].CreateDataReader())
{
p = 0;
while (dtr3.Read())
{
arrName[i, 2 + p] = dtr3[15].ToString();
for (int k = 2; k < 12; k++)
{
arrScr[i, 2 + p] += Convert.ToInt32(dtr3[k].ToString());
}
p++;
}
}
將k <= 12
更改為k < 12
。
如果這不是造成問題的原因,則應將k <= 12
重寫為k < 13
因為這是大多數編碼器用於讀取和寫入的慣例。
dtr3[12]
什么? 它返回null
嗎?
cnt2
的值是什么?
這意味着您的數組所包含的元素不如您嘗試訪問的元素那么多。
由於k的最后一個有效值為12,因此它將以k = 13的形式退出循環,然后通過循環執行k ++(使之成為13)。 此時,它無法滿足條件,因為13> 12,這就是它實際退出的時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.