将两个铸造类列表附加在一起
我有一个Cat
类和一个Dog
类,实现了一个名为IAnimal
的接口。将两个铸造类列表附加在一起
我有一个方法,获取cats
和dogs
的列表。 目前我可以将cats
转换为IAnimal
并将其添加到animalList
。
List<IAnimal> animalList;
...
public void setUpList(List<Cat> cats, List<Dog> dogs){
animalList = cats.ToList<IAnimal>();
}
有投两个cats
和dogs
到IAnimal
并将它们组合到一个列表中的一个雄辩的语言?
您可以使用Union
和ToList()
简单。像这样:
List<IAnimal> animalList = cats.Union(dogs.Cast<IAnimal>()).ToList();
只是不要忘记添加using System.Linq;
您using
指令。
我认为最简单的方法就是用Enumerable.Cast<>法和工会它们:
cats.Cast<IAnimal>().Union(dogs.Cast<IAnimal>());
如果我有两个以上的对象,我会只追加另一个联盟吗? – lost9123193
@ lost9123193 - 是的,你可以联合任何数量的IEnumerable ,因为任何联盟都可以获得另一个IEnumerable '(它是“流畅”的)。 – Alexei
啊我看到我得到一个错误,说我不能隐式地将IEnumerable转换为通用列表 – lost9123193
我收到错误消息,我无法将类型强制转换为类型GenericList –
lost9123193
@ lost9123193 - 它应该是'cats .Union(dogs.Cast())。ToList()'; –
Alexei