2016-04-21 66 views
1
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数组?如何使用for循环内的类对象填充二维数组?

+0

的上面的代码是我到目前为止 –

回答

2

对于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 
+0

OOOOH好吧,我现在得到它 –

+0

不是什么意思,但你也可以帮助我如何打印到控制台? –

+0

可以打印?是的,可以使用Console.WriteLine()。但这取决于您想要打印的内容以及dailyMenu类的外观。你想打印什么?班级的样子是怎样的? – Ian

1

我的问题是我想知道如何用我的dailyMenu类的新对象填充我的二维数组?

初始化dm后。

daysOfMonth[column,row] = dm

+0

所以这将填充我的dailymenu类的不同对象我的二维数组? –

+0

这会将你的数组填充到'dm'中。所以基本上是肯定的,因为你使用'new',所以它会在每个循环中创建新的对象。 – Segmentation

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(); 
    } 
} 
+0

非常感谢,我知道这是与 –