我们可以用C#创建一个列表中的字典吗?
我必须创建一个列表,如下所示: 姓名、卷号 主题编号,主题类型 科目编号、科目类型 e、 g我们可以用C#创建一个列表中的字典吗?,c#,C#,我必须创建一个列表,如下所示: 姓名、卷号 主题编号,主题类型 科目编号、科目类型 e、 g name[0] = ron, roll no[0] = 12 subjectno[0]=1, subject type[0]="english" subjectno[1]=12, subject type[1]="maths" name[1] = elis, roll no[1] = 11 subjectno[0]=1, subject type[0]="e
name[0] = ron, roll no[0] = 12
subjectno[0]=1, subject type[0]="english"
subjectno[1]=12, subject type[1]="maths"
name[1] = elis, roll no[1] = 11
subjectno[0]=1, subject type[0]="english"
subjectno[1]=12, subject type[1]="maths"
subjectno[2]=14, subject type[2]="physics"
我不知道如何在C#中做到这一点。
我试着列出学生信息,然后针对科目号和科目类型,我试着编一本字典。
我写了这样的代码-
class Student
{
public class StudentInfo
{
public String name { get; set; }
public int rollno { get; set; }
Dictionary<String, String> subjects;
public StudentInfo(String name, int rollno)
{
this.name = name;
this.rollno = rollno;
}
public void addstudentinfo(string subjectno, string subjecttype)
{
if (subjects == null)
subjects = new Dictionary<string, string>();
subjects.Add(subjectno, subjecttype);
}
}
班级学生
{
公共班级学生信息
{
公共字符串名称{get;set;}
public int rollno{get;set;}
词典主题;
public StudentInfo(字符串名,int-rollno)
{
this.name=名称;
this.rollno=rollno;
}
public void addstudentinfo(字符串subjectno,字符串subjecttype)
{
if(subjects==null)
主题=新词典();
subjects.Add(subjectno,subjecttype);
}
}
您可以创建包含学生信息的结构或类,然后将其添加到字典
,其中字符串
是学生姓名作为键
用于存储学生信息的类:
public class StudInfo
{
public int RollNum;
public List<string> Activities = new List<string>();
public StudInfo(int num)
{
RollNum = num;
}
}
您的需求不清楚,但最好还是创建一个
主题类
class Subject{
public int Id {get;set;}
public string Type {get;set;}
}
从那里,您可以将词典主题
更改为简单的列表
类型。并将添加学生信息
方法更改为将主题
作为参数
您可以通过修改Subject
类(例如,使用)来确保某个特定Subject
的实例只存在一个,从而进一步改进它。这里是我的做法。首先创建这两个类
public class Student
{
public int RollNo { get; set; }
public string Name { get; set; }
public Student(int rNo, string name)
{
this.RollNo = rNo;
this.Name = name;
}
public Student()
{
}
}
public class Subject
{
public int SubjectNo { get; set; }
public string Type { get; set; }
public Subject(int sNo, string sType)
{
this.SubjectNo = sNo;
this.Type = sType;
}
public Subject()
{
}
}
然后按如下方式填写对象:-
Dictionary<Student, List<Subject>> studentLists = new Dictionary<Student, List<Subject>>();
Student std = new Student() { RollNo = 11, Name = "John" };
List<Subject> sbj = new List<Subject>() {new Subject(020, "Math"),new Subject(030,"English") };
studentLists.Add(std, sbj);
Dictionary studentlist=newdictionary();
Student std=newstudent(){RollNo=11,Name=“John”};
List sbj=newlist(){新科目(020,“数学”)、新科目(030,“英语”)};
学生名单。添加(标准、sbj);
然后按如下方式迭代字典:-
StringBuilder sb = new StringBuilder();
foreach (KeyValuePair<Student, List<Subject>> item in studentLists)
{
sb.Append("Student No : " + item.Key.RollNo + "<br />");
sb.Append("Student Name : " + item.Key.Name + "<br />");
foreach (var subjects in item.Value)
{
sb.Append("Subject No : " + subjects.SubjectNo + "<br />");
sb.Append("Subject Name : " + subjects.Type + "<br />");
}
}
StringBuilder sb=新建StringBuilder();
foreach(学生列表中的KeyValuePair项)
{
sb.追加(“学生编号:+item.Key.RollNo+”
);
sb.追加(“学生姓名:+item.Key.Name+”
);
foreach(item.Value中的var主体)
{
sb.追加(“主题编号:+subjects.SubjectNo+”
);
sb.追加(“主题名称:“+subjects.Type+”
);
}
}
希望这能有所帮助。您必须定义哪些C#类?作业?请将其标记为此类。
StringBuilder sb = new StringBuilder();
foreach (KeyValuePair<Student, List<Subject>> item in studentLists)
{
sb.Append("Student No : " + item.Key.RollNo + "<br />");
sb.Append("Student Name : " + item.Key.Name + "<br />");
foreach (var subjects in item.Value)
{
sb.Append("Subject No : " + subjects.SubjectNo + "<br />");
sb.Append("Subject Name : " + subjects.Type + "<br />");
}
}