【发布时间】:2011-06-16 16:26:39
【问题描述】:
我正在尝试学习 Linq,我需要有关在列表中搜索列表、找到匹配项并将其删除的方法的帮助。例如,假设我有一个名为 Student 的类:
public class Student
{
string FirstName;
string LastName;
}
然后想象我有另一个名为Classroom 的类,它有一个List<Student>:
public class Classroom
{
List<Student> Students;
}
最后,我还有一个类,叫做School,它有一个Classrooms的列表:
public class School
{
List<Classroom> Classrooms;
}
然后,我需要一个接收Student 对象的方法,检查学生是否在学校,如果在,则将其删除。如果他们在学校,该方法应该删除他们并返回 true。如果他们不在学校,该方法应该返回 false 并且不采取任何行动。这是一个使用 foreach 循环的示例,我想摆脱它:
public bool RemoveStudentFromSchool(Student student)
{
foreach (Classroom c in Classrooms)
{
foreach (Student s in c.Students)
{
if ((student.FirstName == s.FirstName) && (student.LastName == s.LastName))
{
s.Remove(student);
return true;
}
}
}
return false;
}
【问题讨论】: