我是LINQ的绝对初学者。
可以用LINQ编写GetAnimals<T>()
的代码吗?
ObservableCollection<Animal> allAnimals = new ObservableCollection<Animal>();
public IEnumerable<T> GetAnimals<T>() where T: Animal
{
foreach (var animal in allAnimals)
if (animal.GetType() == typeof(T))
yield return (T)animal;
}
答案 0 :(得分:10)
public IEnumerable<T> GetAnimals<T>() where T: Animal
{
return allAnimals.OfType<T>();
}
答案 1 :(得分:4)
已有一种扩展方法:OfType