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)
??
答案 0 :(得分:6)
List<Tiger> tigers = animals.OfType<Tiger>().ToList();
答案 1 :(得分:1)
var tigers = animals.Where(a =&gt; a是Tiger);