【发布时间】:2018-12-09 23:01:01
【问题描述】:
我正在阅读一个包含学生列表的 csv - 姓名、姓氏、班长、年级、主题、分数。
如果他不存在,我想添加一个新学生,或者如果列表中存在该学生,我只添加主题和分数。代码如下:
class School
{
private int[] Grades = new int[5] { 8, 9, 10, 11, 12 };
public List<Student> Students = new List<Student>();
private HashSet<string> AllSubjects = new HashSet<string>();
public School()
{
}
public void CreateStudents()
{
List<string[]> storedCSVData = CSVHelper.ReadCSV();
//int index = 0;
foreach(string[] lineItem in storedCSVData)
{
//index++;
//if ((index % 6) != 0)
// continue;
string fullName = lineItem[0] + " " + lineItem[1];
int i = Students.IndexOf(x =>
x.GetFullName().Contains(fullName));
if(i >= 0){
Students[i].SubjectScore.Add(lineItem[4],
Convert.ToDouble(lineItem[5]));
continue;
}
Student storedStudent = new Student(lineItem[0],
lineItem[1],
lineItem[2] == "Yes"
`? true : false,`
Convert.ToInt32(lineItem[3]));
Students.Add(storedStudent);
}
foreach(Student s in Students)
Console.WriteLine(s.GetFullName());
}
}
}
在学生课上:
class Student : Person
{
private bool ClassLeader = false;
private int Grade = 0;
public Dictionary<string, double> SubjectScore = new
Dictionary<string, double>();
public Student(string name, string surname, bool classLeader, int
grade)
{
Name = name;
Surname = surname;
ClassLeader = classLeader;
Grade = grade;
}
public string GetFullName()
{
return Name + " " + Surname;
}
}
我不断收到一条错误消息,提示无法转换“Student”类型的 lambda 表达式,因为它不是委托类型。
有人可以帮忙吗,我现在迷路了。
【问题讨论】:
-
我会先让我们知道哪一行给你这样的错误。 :)
-
我很抱歉。在类 School 方法 CreateStudents() 下一行: int i = Students.IndexOf(x => x.GetFullName().Contains(fullName));