我正在创建一个程序,将学生及其分数存储在字典列表混合中。例如,
Dictionary<int, List<int>> examGrades = new Dictionary<int, List<int>>();
List<int> name = new List<int>();
是否有使用for循环为新学生创建新列表? 当我在编写代码
时Console.WriteLine("What is the student name");
string name = Console.ReadLine();
List<int> name = new List<int>();
在这种情况下,我会收到一个无法创建的错误,因为“name”已经存在。反正有没有解决这个问题?这将是嵌套for循环的内部for循环。外部for循环将通过并将项添加到当前列表。任何帮助,将不胜感激。感谢。
答案 0 :(得分:1)
在将项目添加到字典中之前,您必须检查字典是否已包含密钥(在本例中为Student)。
使用ContainsKey
的{{1}}扩展方法,检查字典中是否已存在学生姓名。
Dictionary
答案 1 :(得分:0)
试试这个:
Dictionary<string, List<int>> examGrades = new Dictionary<int, List<int>>();
for(int i = 0; i < 10; i++)
{
Console.Write("Student's name: ");
string name = Console.ReadLine();
Console.Write("Student's mark (type 0 at the end): ");
List<int> marks = new List<int>();
int mark = 0;
do
{
int mark = Convert.ToInt32(Console.ReadLine());
if(mark == 0)
break;
marks.Add(mark);
} while(true);
examGrades.Add(name, marks);
}