与C#中的多维数组初始化混淆



我是一名编程新手,刚开始学习数组。让我困惑的是用C#初始化多维数组的方法。这是因为我自己没有指定每个元素的坐标,但C#以某种方式做到了。

更具体地说,假设我初始化这个数组:

string[,] names = {
 {"Deadpool", "Superman", "Spiderman"}
 {"Catwoman", "Batman", "Venom"}
};

假设在一维数组初始化中,C#从元素[0]中放置第一个值开始,我假设多维数组也是如此。但是,对于每个单独的维度,它不是都是一样的吗?这不可能是真的。因为然后它会将"死侍"放在行的元素[0]上,然后它会尝试将"猫女"放在第一列的元素[0]。如果是这样的话,假设第一行的元素[0]与第一列的元素[0]相同,"猫女"将取代"死侍",因为两者都将写在[0,0]中。然而,使用foreach在控制台上编写所有内容,两者都会出现。那么,C#是如何以及在哪里放置每个值的,以避免一个维度的值覆盖另一维度的值?

如果将foreach转换为for循环,它可能会更有意义:

static  void Main(string[] args)
       {
           string[,] names = {{"Deadpool", "Superman", "Spiderman"},{"Catwoman", "Batman", "Venom"}};
           for (int index0 = 0; index0 < names.GetLength(0); index0++)
           {
               for (int index1 = 0; index1 < names.GetLength(1); index1++)
               {
                   var name = names[index0, index1];
                   Console.Write(name);
               }
           }
       }

这基本上就是foreach在幕后所做的。如果你想了解它的实际工作原理,请从这里开始:

Java';对于每个';循环工作?

foreach是如何在C#中实现的?

foreach循环在C#中是如何工作的?

相关内容

  • 没有找到相关文章