如何在for循环中用类对象填充2D数组?

时间:2016-04-21 00:44:34

标签: c#

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数组?

3 个答案:

答案 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 ();
    }
}