繁体   English   中英

需要帮助以C#创建2D阵列

[英]Need Help Creating a 2D Array in C#

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

控制台中的Table视图示例

这是我到目前为止构建的代码。

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;
        }
    }
}

您有一个2-dimensional array ,还有3个for-loop 同样, "{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();
    }
}

这应该起作用;

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个循环,而你只需要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();

}

这是一个可行的简单解决方案:

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();
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM