如何访问2d数组为学生输入分数?C#
我正试图从2d数组向控制台写入一个学生的名字, 然后将坡度值读取到二维数组中的正确位置。 数组中的每个元素都有一个学生名和年级。 有谁能帮我澄清这一点,如果这能奏效的话,我觉得我的精神即将突破如何访问2d数组为学生输入分数?C#,c#,arrays,C#,Arrays,我正试图从2d数组向控制台写入一个学生的名字, 然后将坡度值读取到二维数组中的正确位置。 数组中的每个元素都有一个学生名和年级。 有谁能帮我澄清这一点,如果这能奏效的话,我觉得我的精神即将突破 static void AskNameForGrade() { for (int i = 0; i < nameAndGradeArray.GetLength(0); i++) { Console.Wri
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
您可以看到它在使用此操作请添加阵列的结构