Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何访问2d数组为学生输入分数?C#_C#_Arrays - Fatal编程技术网

如何访问2d数组为学生输入分数?C#

如何访问2d数组为学生输入分数?C#,c#,arrays,C#,Arrays,我正试图从2d数组向控制台写入一个学生的名字, 然后将坡度值读取到二维数组中的正确位置。 数组中的每个元素都有一个学生名和年级。 有谁能帮我澄清这一点,如果这能奏效的话,我觉得我的精神即将突破 static void AskNameForGrade() { for (int i = 0; i < nameAndGradeArray.GetLength(0); i++) { Console.Wri

我正试图从2d数组向控制台写入一个学生的名字, 然后将坡度值读取到二维数组中的正确位置。 数组中的每个元素都有一个学生名和年级。 有谁能帮我澄清这一点,如果这能奏效的话,我觉得我的精神即将突破

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
                }


            }
        }
static void asknamefgrade()
{
对于(int i=0;i
您说您的数组是2D的,然后您尝试使用
名称和GradeArray[i]
的单个维度访问它-这不起作用

你不需要/不应该有一个循环来存储等级-循环从0开始,因此在这样做时可能会覆盖名称(假设namearray是一个打字错误),然后要求另一个等级

假设您有一个nameAndGradeArray,例如
string[10,2]
,您将有一个从0到
GetLenth(0)-1
(即9)的循环,并打印它在
[i,0]
中找到的名称,然后请求一个等级,并使用
nameAndGradeArray[i,1]=stringGrade>存储等级

nameAndGradeArray(可能)是一个2D字符串数组;你不能在里面加整数。如果你使用TryParse来检查他们输入的数字,这是有道理的,但也许暂时不考虑这一点复杂性,只需询问分数并存储即可。如果名称已经在nameAndGrade的第一个维度中,那么也不需要namearray(如果这不是打字错误的话)


这可能是一个学术性的练习,所以我将避免提出更深入的建议,但将来您可能不会太多地使用N维数组,因为它们不是很有用。有一天,你会将其建模为一个具有字符串名称和数字等级的类,它将位于一个灵活的集合(如列表)中。

多维数组必须是我建议使用字典的相同类型,你有一个键和一个值,其中值(例如等级)将属于名称。如果你使用字典,这段代码应该可以用

string[] names = new string[]{"Adam", "Brittany"};
Dictionary<string, int> nameAndGrades = new Dictionary<string, int>();
for (int i = 0; i < names.GetLength(0); i++)
{
    int grade = 0;
    while(true)
    {
        Console.WriteLine($"Please enter grade for {names[i]}");
        if(int.TryParse(Console.ReadLine(), out grade))
        {   
            nameAndGrades.Add(names[i], grade);
            break;
        }
    }
}

foreach (var vp in nameAndGrades)
{
    Console.WriteLine($"{vp.Key} : {vp.Value}");
}
string[]names=新字符串[]{“Adam”,“Brittany”};
字典名称和等级=新字典();
for(int i=0;i

您可以看到它在使用此操作

请添加阵列的结构