【问题标题】:Need Help Creating a 2D Array in C#需要帮助在 C# 中创建二维数组
【发布时间】:2016-04-20 21:14:52
【问题描述】:

我正在 C# 中创建一个二维数组,但我无法让我的行和列对齐。我正在尝试将我的数据分成六行和五列。 Mon 与 12、10、17、22 对齐。然后星期二与 11、12、17、22 对齐。这将继续坐着。这是一个表格的例子。

这是我目前构建的代码。

class Zumba
{
    public static void main()
    {
        Zumba table = new Zumba();
        int[,] zumValues = table.ZumbaValues;
        string[] zumForm = new string[6] { "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat" };
        for (int z = 0; z < zumForm.GetLength(0); z++)
        {
            Console.Write("{0}", zumForm[z]);
            for (int r = 0; r < zumValues.GetLength(0); r++)
            {
                for (int c = 0; c < zumValues.GetLength(1); c++)
                    Console.Write("\t" + "{1,2,3,4,5,6}" + "\t", zumValues[r, c]);

            }
            Console.WriteLine();
        }
        Console.ReadLine();
    }

    private int[,] zumba = new int[6, 4] { { 12, 10, 17, 22 }, 
                                           { 11, 13, 17, 22 }, 
                                           { 12, 10, 22, 22 }, 
                                           { 9, 14, 17, 22 }, 
                                           { 12, 10, 21, 12 }, 
                                           { 12, 10, 5, 10 } };

    public int[,] ZumbaValues
    {
        get
        {
            return zumba;
        }
        set
        {
            zumba = value;
        }
    }
}

【问题讨论】:

  • 那么问题出在哪里?控制台的图像看起来不错。
  • 好吧,这一行看起来都错了Console.Write("\t" + "{1,2,3,4,5,6}" + "\t", zumValues[r, c]);

标签: c# arrays multidimensional-array


【解决方案1】:

您有一个2-dimensional array,还有3 个for-loops。 "{1,2,3,4,5,6}" 也不是有效的字符串格式。

public static void Main()
{
    Zumba table = new Zumba();
    int[,] zumValues = table.ZumbaValues;
    string[] zumForm = new string[6] { "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat" };

    for (int day = 0; day < zumForm.Length; day++)
    {
        Console.Write(zumForm[day]);

        for (int time = 0; time < zumValues.GetLength(1); time++)
            Console.Write("\t{0}", zumValues[day, time]);

        Console.WriteLine();
    }
}

【讨论】:

    【解决方案2】:

    这应该有效;

    Program table = new Program();
                int[,] zumValues = table.ZumbaValues;
                string[] zumForm = new string[6] { "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat" };
                for (int z = 0; z < zumForm.Length; z++)
                {
                    var Nums = "";
                    for (var t = 0; t < 4; t++)
                        Nums = Nums + table.zumba[z, t].ToString() + " ";
    
                    Console.Write("{0} {1}", zumForm[z],Nums);
                    Console.WriteLine();
                }
    
                Console.ReadLine();
    

    【讨论】:

      【解决方案3】:

      这是一个有效的简单解决方案:

      public static void Main()
          {
              Zumba table = new Zumba();
              int[,] zumValues = table.ZumbaValues;
              string[] zumForm = new string[6] { "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat" };
      
      
              int r = 0;
              while (r < zumValues.GetLength(0))
              {
                  //Write the day
                  Console.Write("{0}", zumForm[r]);
                  //right the zumba values
                  for (int c = 0; c < zumValues.GetLength(1); c++)
                      Console.Write("\t" + zumValues[r, c] + "\t");   
                  //new Line             
                  Console.Write("\n");
                  r++;
              }
      
              Console.ReadLine();
          }
      

      【讨论】:

        【解决方案4】:

        我看到你有 3 个循环,而你只需要 2 个,一个用于行,一个用于列。此外,您不需要 {1,2,3,4,5,6},因为您正在骑自行车并且您只需要一个参数 {0}

        这是我认为你需要的:

        static public void Main()
        {
            Zumba table = new Zumba();
            int[,] zumValues = table.ZumbaValues;
            string[] zumForm = new string[6] { "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat" };
            for (int z = 0; z < zumForm.GetLength(0); z++)
            {
                Console.Write("{0}", zumForm[z]);
                for (int c = 0; c < 4; c++)
                     Console.Write("\t"+"{0}"+"\t",zumValues[z, c]);
                Console.Write("\n");
            }
        
            Console.ReadLine();
        
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-04-22
          • 2013-12-08
          • 2020-06-22
          • 2016-08-12
          • 2023-04-09
          • 2023-03-04
          • 1970-01-01
          相关资源
          最近更新 更多