【问题标题】:How to use foreach with a two dimensional array of objects?如何将 foreach 与二维对象数组一起使用?
【发布时间】:2016-04-11 08:06:06
【问题描述】:

这是我的尝试,它不起作用(我是初学者)。这个想法是有一个简单的 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);
                    }
                }
            }
        }

【问题讨论】:

    标签: c# object foreach


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢!
    • abi naber keyifler nasıl? :)
    【解决方案2】:

    改成这样:

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

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

    【讨论】:

    • 非常感谢,现在我明白了我应该使用 var 而不是 int!
    【解决方案3】:

    我认为您可能想介绍forforeach 在处理多维数组方面的差异,但您展示的示例不适用于这样做。

    虽然下面的代码[][]不完全是二维数组,命名为锯齿数组,但解释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

    【讨论】:

      猜你喜欢
      • 2014-03-06
      • 2015-03-24
      • 2012-02-21
      • 1970-01-01
      • 2016-12-20
      • 1970-01-01
      • 2016-11-15
      • 2012-12-13
      • 1970-01-01
      相关资源
      最近更新 更多