gpt4 book ai didi

c# - System.IndexOutOfRangeException - 索引超出数组范围

转载 作者:太空宇宙 更新时间:2023-11-03 22:00:34 26 4
gpt4 key购买 nike

<分区>

我正在创建一个从 Excel 工作表中导入二维对象信息数组的程序。然后它将此数组传递给 ProcessObjects 方法进行处理并打印/导出回 Excel 模板。谁能告诉我为什么会收到此错误消息?

“Project.exe 中发生类型为‘System.IndexOutOfRangeException’的未处理异常

附加信息:索引超出数组范围。"

private void ProcessObjects(object[,] classesArray, object[,] classesAvailabilityArray, Excel.Workbook workbook2, Excel.Sheets excelSheets)
{
// once classes are selected, they are copied to a temporary location
// while they're waiting to be printed
object[,] tempArray = new object[6,3];

// This stops the while loop once enough credit hours have been taken
// It must reach 123 hours for CS Degree .
int hourCounter = 0;

int iteration = 0;

while (hourCounter < 123)
{
// this while loop copies some classes from classesArray to tempArray
// so they can be printed into the excel template (NewStudentTemplateCS.xlsx)
//
int classes = 0, hours = 0; // stops while loop if limit is reached
int w = 0, x = 0; // used to select individual elements of tempArray (0 based)
// w = row
// x = column
int y = 1, z = 1; // used to select individual elements of classesArray (1 based)
// y = row
// z = column
while(classes < 7 || hours < 17)
{
// this loop checks the status of the flag and stops at the first avaliable
// class/row of classesArray
while (classesArray[y,7] == (object)1)
{
y++;
}

// copies the call EX: "MATH 2313" from classesArray to tempArray
tempArray[w,x] = classesArray[y,z];
x += 2;
z += 2;
// copies the name EX: "Calculus I" from classesArray to tempArray
tempArray[w, x] = classesArray[y, z];
x++;
z++;
// Copies the hours EX: "3" from classesArray to tempArray
tempArray[w, x] = classesArray[y, z];

Console.WriteLine("debug test");

// increments classes, hours, and hourCounter for exit decision
classes += 1;
hours += (int)classesArray[y, z];
hourCounter += (int)classesArray[y, z];

// sets flag to one
z += 3;
classesArray[y, z] = 1;

}// end while loop

// print method that prints temp array and clears tempArray for next use
PrintArray(tempArray, iteration, workbook2, excelSheets);

// iterates iteration
iteration++;

} // end while loop
// print method that prints temp array and clears tempArray for next use
PrintArray(tempArray, iteration, workbook2, excelSheets);

// iterates iteration
iteration++;

} // end while loop
} // end ProcessObjects method

我已分别注释掉以下每一行,但每一行代码都返回我上面列出的相同错误。

Console.WriteLine("debug test");

// increments classes, hours, and hourCounter for exit decision
classes += 1;
hours += (int)classesArray[y, z];
hourCounter += (int)classesArray[y, z];

// sets flag to one
z += 3;
classesArray[y, z] = 1;

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com