如何将foreach用于二维对象数组
本文关键字:二维 对象 数组 foreach 用于 | 更新日期: 2023-09-27 18:29:11
这是我的尝试,但不起作用(我是初学者)。这个想法是有一个Kid.years int的简单二维数组,以了解如何将foreach与对象一起使用。
using System;
namespace Test
{
class Kid
{
public int years;
}
class Program
{
static void Main()
{
Kid[,] array = new Kid[4, 5];
for (int counter = 0; counter < 4; counter++)
{
for (int counter2 = 0; counter2 < 5; counter2++)
{
array[counter, counter2] = new Kid();
array[counter, counter2].years = counter + 1000;
}
}
foreach (int item in array[,].years)
{
Console.WriteLine(item);
}
}
}
}
您可以枚举二维数组,如下所示:
foreach (Kid item in array)
{
Console.WriteLine(item.years);
}
只需更改为:
foreach (var item in array)
{
Console.WriteLine(item.years);
}
看看它在我的小提琴里演奏:https://dotnetfiddle.net/Sfi0yu
我认为您可能希望在处理多维数组时引入for
和foreach
的差异,但您展示的示例不适用于此。
虽然下面的代码[][]
并不完全是2d数组,命名为锯齿状数组,但解释for
和foreach
的情况会更合适。
static void Main()
{
Kid[][] array = new Kid[4][];
for (int counter = 0; counter < 4; counter++)
{
array[counter] = new Kid[5];
for (int counter2 = 0; counter2 < 5; counter2++)
{
array[counter][counter2] = new Kid();
array[counter][counter2].years = counter + 1000;
}
}
// how to use foreach.
foreach (Kid[] item in array)
{
foreach (var kid in item)
{
Console.WriteLine(kid.years);
}
}
Console.ReadLine();
}
如果您想在图片中看到[][]
和[,]
的差异,请查看这个解释充分的链接:https://stackoverflow.com/a/12567550/361100