簡體   English   中英

指數數組的邊界之外

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM