【问题标题】:C# multidimensional arrays iterationC# 多维数组迭代
【发布时间】:2013-01-23 08:08:14
【问题描述】:

我是 C# 新手,正在研究数组。

给定:

int[][] myJagArray = new int[5][];

为什么下面会打印 j (System.Int32[]) 的 types,而不是每个 j 的内容?

foreach (int[] j in myJagArray)
{
    Console.WriteLine("j : {0}",j);
}

【问题讨论】:

    标签: c# arrays multidimensional-array iteration


    【解决方案1】:

    因为Array.ToString() 不返回数组的内容,它返回类型名称,并且Console.WriteLine 在您作为参数发送的每个对象上隐式调用ToString()

    这与数组是多维数组的一部分这一事实无关,它只是 CLR 开发人员选择(或者更确切地说,选择)实现@987654324 的方式@上System.Array

    【讨论】:

      【解决方案2】:

      它打印 ToString() 方法的输出,因为 j 在这种情况下是一个数组,它使用 Object ToString 实现,并且该行为正在打印其类型。

      你可能想做的事:

      foreach (int[] j in myJagArray)
      {
          StringBuilder sb = new StringBuilder("j : ");
      
          foreach (int k in j)
          {
              sb.append("[").append(k).append("]");
          }
      
          Console.WriteLine(sb.Tostring());
      }
      

      【讨论】:

        【解决方案3】:

        您正在打印出int 的数组。

        尝试以下方法打印数组中的第一个值:

        Console.WriteLine("j : {0}",j[0]);
        

        要打印出全部内容,您可能需要尝试以下操作:

        foreach (int[] j in myJagArray)
        {
            foreach (int i in j)
            {
                Console.WriteLine("i : {0}",i);
            }
        }
        

        【讨论】:

          【解决方案4】:

          你应该像下面那样做

          for(int i=0;i<5;i++)
              for( int j=0;j<5;j++)
                  print(myjagarray[i][j].tostring());
          

          【讨论】:

            【解决方案5】:

            当您使用 Console.WriteLine 输出一个值时,您实际上是首先对该值调用 ToString(),而 Array.ToString() 不返回值,而是返回类型。如果要输出 j 的值,则需要运行第二个循环:

            foreach (int[] j in myJagArray)
            {
                Console.Write("j: ");
                foreach (int i in j)
                {
                    Console.Write("{0} ",i);
                }    
                Console.Write("\n");
            }
            

            【讨论】:

              猜你喜欢
              • 2015-04-24
              • 2023-03-08
              • 2014-05-17
              • 1970-01-01
              • 2014-04-20
              • 2021-11-02
              • 2011-11-20
              相关资源
              最近更新 更多