如何将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用于二维对象数组

您可以枚举二维数组,如下所示:

foreach (Kid item in array)
{
    Console.WriteLine(item.years);
}   

只需更改为:

foreach (var item in array)
{
     Console.WriteLine(item.years);
}

看看它在我的小提琴里演奏:https://dotnetfiddle.net/Sfi0yu

我认为您可能希望在处理多维数组时引入forforeach的差异,但您展示的示例不适用于此。

虽然下面的代码[][]并不完全是2d数组,命名为锯齿状数组,但解释forforeach的情况会更合适。

        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