假设我们有一个“A 学生”列表和一个“B 学生”列表。然后我们将这两个列表添加到一个更通用的列表中,称为“学生”。然后有人决定通过在通用“学生”列表中添加重复的“学生”列表来使我们的生活复杂化。删除“A学生”重复列表之一的最有效方法是什么?请注意,其中涉及两个自定义类。
代码中的通用学生列表称为 lstStudents。这是我想从中删除任何重复项的列表。
(我试图想出一个更好的例子,但这是我现在能做的最好的。)
我不必使用 LINQ,但它是可用的。MoreLinq 也可用。
这是我的课程:
public class Student
{
public Student(string _name, int _age, Exam _lastExam)
{
name = _name;
age = _age;
lastExam = _lastExam;
}
public string name { get; set; }
public int age { get; set; }
public Exam lastExam { get; set; }
}
public class Exam
{
public Exam(int _correct, int _possible)
{
correct = _correct;
possible = _possible;
}
public int correct { get; set; }
public int possible { get; set; }
}
这是创建混乱的代码:
List<List<Student>> lstStudents = new List<List<Student>>();
List<Student> lstAStudents = new List<Student>();
List<Student> lstDuplicateAStudents = new List<Student>();
List<Student> lstBStudents = new List<Student>();
// Create a list of some A students
lstAStudents.Add(new Student("Alex", 14, new Exam(98,100)));
lstAStudents.Add(new Student("Kim", 13, new Exam(96, 100)));
lstAStudents.Add(new Student("Brian", 14, new Exam(92, 100)));
lstStudents.Add(lstAStudents);
// Create a duplicate list of A students
lstDuplicateAStudents.Add(new Student("Alex", 14, new Exam(98, 100)));
lstDuplicateAStudents.Add(new Student("Kim", 13, new Exam(96, 100)));
lstDuplicateAStudents.Add(new Student("Brian", 14, new Exam(92, 100)));
lstStudents.Add(lstDuplicateAStudents);
// Create a list of some B students
lstBStudents.Add(new Student("John", 13, new Exam(88, 100)));
lstBStudents.Add(new Student("Jenny", 13, new Exam(80, 100)));
lstBStudents.Add(new Student("Jamie", 15, new Exam(81, 100)));
lstStudents.Add(lstBStudents);