对于2 d阵列,你可能想通过对GetLength获得的长度(0)和GetLength进行(1)而不是通过使用长度:
dailyMenu [,] daysOfMonth = new dailyMenu[4,5];
for (int column = 0; column < daysOfMonth.GetLength(0); column++)
{
for (int row = 0; row < daysOfMonth.GetLength(1); row++)
{
dailyMenu dm = new dailyMenu();
//do something on dm
daysOfMonth[column,row] = dm; //assign it like this
}
}
这是因为对GetLength具有参数尺寸指数(0,1,2等)...这可以给你在该维数组的长度(0是第一个尺寸 - 在你的情况下列,和1是第二个 - 在你的情况下行。长度没有。
的值分配给数组,简单地由维度指标(列和行)在正确顺序访问阵列 - 否则你将得到IndexOutOfRange例外:
daysOfMonth[column,row] = dm; //correct
daysOfMonth[row,column] = dm; //wrong, exception on 5,0
来源
2016-04-21 00:50:07
Ian
的上面的代码是我到目前为止 –