我有一个 IAnimal
的列表
List<IAnimal> Animals
在此列表中,我有 3 个不同的 Animal
-
Cat
5个对象 -
Dog
10个对象 -
Cow
3个对象
如何生成 3 个不同的子列表 Animal
类型?
结果应该是
-
List<Cat> Cats
包含 5 个对象 -
List<Dog> Dogs
包含 10 个对象 -
List<Cow> Cows
包含 3 个对象
我不介意使用不同的集合类型 List
. IEnumerable
还是其他人?
最佳答案
LINQ 使这变得简单:
var cats = animals.OfType<Cat>().ToList();
var dogs = animals.OfType<Dog>().ToList();
var cows = animals.OfType<Cow>().ToList();
关于c# - 通用父集合拆分为子集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15310813/