我得到一个例外:
当它在第二个循环中时,System.IndexOutOfRangeException:'索引超出了数组的范围。'
在col ++上。我想把列表中的vales>优秀的列和行。请让我知道我做错了什么。
object[,] cellValuesToWrite = new string[excelRange.Rows.Count, excelRange.Columns.Count];
foreach (List<string> errorRecord in section.ErrorRecords)
{
int rows = 0;
int col = 0;
int length = errorRecord.Count;
foreach (var elem in errorRecord)
{
if (col < length)
{
cellValuesToWrite[rows, col] = elem;
col++;
}
}
rows++;
}
答案 0 :(得分:1)
如果使用excelRange.Rows.Count
创建数组且excelRange.Rows.Count
为5,则无法访问cellValuesToWrite[5, col]
,因为索引从0开始,并且您尝试以这种方式访问第6个元素。
为什么不使用旧的for循环(特别是如果你需要索引):
for (int row = 0; row < cellValuesToWrite.GetLength(0); row++)
{
for (int col = 0; col < cellValuesToWrite.GetLength(1); col++)
{
cellValuesToWrite[row, col] = section.ErrorRecords[row][col];
}
}