将两个类似的类列表附加在一起

时间:2017-10-12 04:36:58

标签: c# list casting

我有一个Cat类和一个Dog类,它实现了一个名为IAnimal的接口。

我有一个方法可以获取catsdogs的列表。 目前,我可以将cats投射到IAnimal并将其添加到animalList

List<IAnimal> animalList;

...

public void setUpList(List<Cat> cats, List<Dog> dogs){
   animalList = cats.ToList<IAnimal>();
}

是否有一种雄辩的方法可以将catsdogs投放到IAnimal并将它们合并到列表中?

2 个答案:

答案 0 :(得分:1)

我认为最简单的方法是使用Enumerable.Cast<>方法并将它们联合起来:

cats.Cast<IAnimal>().Union(dogs.Cast<IAnimal>());

答案 1 :(得分:1)

您可以简单地使用UnionToList()。像这样:

List<IAnimal> animalList = cats.Union(dogs.Cast<IAnimal>()).ToList();

不要忘记将using System.Linq;添加到using指令中。