gpt4 book ai didi

c# - 使用linq从基类列表中获取相同类型的继承类项

转载 作者:行者123 更新时间:2023-11-30 19:59:30 26 4
gpt4 key购买 nike

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();

关于c# - 使用linq从基类列表中获取相同类型的继承类项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23777554/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com