如何使用foreach与二维对象数组?

时间:2016-01-07 02:45:50

标签: c# object foreach

这是我的尝试,它不起作用(我是初学者)。我们的想法是拥有一个简单的Kid.years整数二维数组,以了解如何将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);
                    }
                }
            }
        }

3 个答案:

答案 0 :(得分:4)

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

ggplot2

答案 1 :(得分:2)

改变它:

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

看到它在我的小提琴中工作:https://dotnetfiddle.net/Sfi0yu

答案 2 :(得分:0)

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

虽然下面的代码[][]不完全是2d数组,但名为 jagged arrays ,但解释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