首页 > 解决方案 > 如何访问二维数组以输入学生的成绩?C#

问题描述

我正在尝试将二维数组中的学生姓名写入控制台,然后将成绩值读入二维数组中的正确位置。数组中的每个元素都有一个学生姓名和年级。谁能帮我澄清一下,如果这可行,我觉得我正处于精神突破的边缘。

static void AskNameForGrade()
        {
            for (int i = 0; i < nameAndGradeArray.GetLength(0); i++)
            {
                Console.WriteLine($"Please enter grade for {nameAndGradeArray[i]}");

                for (int j = 0; j < nameArray.GetLength(1); j++)
                { 
                    string stringGrade = Console.ReadLine();
                    int.TryParse(stringGrade, out grade);
                    //read in grade to array match name shown
                }


            }
        }

标签: c#arrays

解决方案


你说你的数组是二维的,然后你尝试用一维访问它nameAndGradeArray[i]——这行不通

您不需要/不应该有一个循环来存储成绩 - 循环从 0 开始,所以这样做可能会覆盖名称(假设 namearray 是一个错字),然后要求另一个成绩

假设您有一个 nameAndGradeArray,例如string[10,2],您将有一个循环从 0 运行到GetLenth(0)-1(即 9)并打印它在 中找到的名称[i,0],然后询问成绩并将成绩存储为nameAndGradeArray[i,1] = stringGrade;

nameAndGradeArray 是(可能)一个二维字符串数组;你不能把一个 int 放进去。如果您使用 TryParse 来检查他们输入的数字,这是有道理的,但也许暂时不要考虑那种复杂性,只需询问成绩并存储它。如果名称已经在 nameAndGrade 的第一维中,也不需要 namearray(如果这不是错字)

这可能是一项学术练习,因此我将避免提出更深入的建议,但您将来可能不会过多使用 N 维数组,因为它们不是很有用。有一天,您会将其建模为一个具有字符串名称和数字等级的类,并且它将位于一个灵活的集合中,如 List..


推荐阅读