У меня есть два класса. Первый - это Person, а второй - Student (который наследуется от Person). Я хочу отфильтровать общий список и найти все Студенты, которые имеют выше 7. Я придумал следующее решение:
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;
});
}
}
Есть ли более простой способ фильтрации этого списка?