使用linq从基类列表中获取相同类型的继承类项
本文关键字:同类型 继承 获取 linq 基类 列表 使用 | 更新日期: 2023-09-27 18:04:17
class Animal { }
class Tiger : Animal { }
class Lion : Animal { }
在动物列表中增加一些动物(从母体Animal
类衍生的狮子和老虎)
class Program
{
static void Main(string[] args)
{
List<Animal> animals = new List<Animal>();
animals.Add(new Tiger());
animals.Add(new Tiger());
animals.Add(new Tiger());
animals.Add(new Lion());
animals.Add(new Lion());
animals.Add(new Lion());
List<Tiger> tigers = new List<Tiger>();
foreach (var item in animals){
if(item is Tiger){
var _tiger = item as Tiger;
tigers.Add(_tiger);
}
}
}
}
我将使用上面的foreach循环获得老虎列表,但是是否有任何实现可以使用Linq,
来获取老虎列表?像List<Tiger> tigers = animals.where(somePredicate)
??
List<Tiger> tigers = animals.OfType<Tiger>().ToList();
var老虎=动物。式中(a => a为Tiger);