以行/列输出2D数组

时间:2015-12-15 21:56:57

标签: c# multidimensional-array console

基本上,我有一个2D字符串数组,在一个维度中包含名称,在另一个维度中包含一组成绩。尽管我可以描述它,但我希望输出的名称为“标题”,每个列的下一个等级。

因此:

Name1 Name2
83    47
66    22

我的代码如下:

static void Main(string[] args)
    {
        // Create a 2D array for names, and their grades
        string[,] studentGrades = new string[5, 8];

        // Set student names/grades manually
        studentGrades[0, 0] = "Steve";
        studentGrades[0, 1] = "69";
        studentGrades[0, 2] = "80";
        studentGrades[0, 3] = "66";
        studentGrades[0, 4] = "75";
        studentGrades[0, 5] = "90";
        studentGrades[0, 6] = "69";
        studentGrades[0, 7] = "98";

        studentGrades[1, 0] = "Bob";
        studentGrades[1, 1] = "73";
        studentGrades[1, 2] = "67";
        studentGrades[1, 3] = "65";
        studentGrades[1, 4] = "91";
        studentGrades[1, 5] = "48";
        studentGrades[1, 6] = "33";
        studentGrades[1, 7] = "94";

        studentGrades[2, 0] = "Lewis";
        studentGrades[2, 1] = "67";
        studentGrades[2, 2] = "80";
        studentGrades[2, 3] = "66";
        studentGrades[2, 4] = "75";
        studentGrades[2, 5] = "90";
        studentGrades[2, 6] = "69";
        studentGrades[2, 7] = "63";

        studentGrades[3, 0] = "Sara";
        studentGrades[3, 1] = "55";
        studentGrades[3, 2] = "58";
        studentGrades[3, 3] = "63";
        studentGrades[3, 4] = "70";
        studentGrades[3, 5] = "55";
        studentGrades[3, 6] = "55";
        studentGrades[3, 7] = "76";

        studentGrades[4, 0] = "Xavier";
        studentGrades[4, 1] = "22";
        studentGrades[4, 2] = "27";
        studentGrades[4, 3] = "25";
        studentGrades[4, 4] = "19";
        studentGrades[4, 5] = "42";
        studentGrades[4, 6] = "18";
        studentGrades[4, 7] = "32";

        // Loop the array dimensions and output/format output the names/grades
        for (int name = 0; name < studentGrades.GetLength(0); name++)
        {
            for (int grade = 0; grade < studentGrades.GetLength(1); grade++)
            {
                Console.WriteLine(studentGrades[name, grade]);
            }
            Console.WriteLine("");
        }
    }

修改

输出如下:

Steve
69
80
....

Bob
73
67
....

1 个答案:

答案 0 :(得分:1)

for (int grade = 0; grade < studentGrades.GetLength(1); grade++)
{
    for (int name = 0; name < studentGrades.GetLength(0); name++)
    {
        Console.Write("{0, -15}", studentGrades[name, grade]);
    }
    Console.WriteLine();
}

上面的代码会给出这个结果:

Steve          Bob            Lewis          Sara           Xavier
69             73             67             55             22
80             67             80             58             27
66             65             66             63             25
75             91             75             70             19
90             48             90             55             42
69             33             69             55             18
98             94             63             76             32