dailyMenu [,] daysOfMonth = new dailyMenu[4,5];
for (int column = 0; column < daysOfMonth.Length; column++)
{
for (int row = 0; row < daysOfMonth.Length; row++)
{
dailyMenu dm = new dailyMenu ();
}
}
我的问题是我想知道如何使用dailyMenu类的新对象填充我的2D数组?
答案 0 :(得分:2)
对于二维数组,您可能希望通过GetLength(0)和GetLength(1)来获取长度,而不是使用Length:
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
答案 1 :(得分:1)
我的问题是我想知道如何使用dailyMenu类的新对象填充我的2D数组?
初始化dm。
daysOfMonth[column,row] = dm
答案 2 :(得分:1)
您可以使用.GetLength()
查找维度的长度。或者,只使用您在2D数组构造函数中使用的相同常量。
dailyMenu [,] daysOfMonth = new dailyMenu[4,5];
for (int column = 0; column < daysOfMonth.GetLength(0); column++)
{
for (int row = 0; row < daysOfMonth.GetLength(1); row++)
{
daysOfMonth[column,row] = new dailyMenu ();
}
}