私は2つのクラスを持っています。1 つ目はPersonで、2 つ目はStudent (Person から継承) です。一般的なListをフィルタリングして、学年が7 よりも高いすべてのStudentを検索したいと考えています。私は次の解決策を思いつきました:
class Person
{
public string Name {get; set;}
}
class Student : Person
{
public decimal Grade {get; set;}
}
class Program
{
static void Main(string[] args)
{
List<Person> people = new List<Person>();
people.Add(new Person() {Name="John"});
people.Add(new Student() {Name="Joe", Grade=6});
people.Add(new Student() {Name="Jane", Grade=8});
people.Where(delegate (Person person) {
var student = person as Student;
return student != null && student.Grade > 7;
});
}
}
このリストをフィルタリングする簡単な方法はありますか?