铸造的接口的对象我有一个包含很多不同的方法,几个对象:在C#
public class Dog: AnimalDescription, IAnimal
public class Cat: AnimalDescription, IAnimal
我想把狗和猫的list
成组合列表。从那里我想创建一个幻灯片并分别播放每个项目。所以我做了一个接口:
public Interface IAnimal
public playAnimal()
我有一个catItem
,并且扩展了该接口dogItem
。
我的问题就出在这里,我不能合并列表。每次我这样做都说我没有正确输出:
我想将它添加到AnimalInterface列表中,并根据类的类型,通过每个catItem或dogItem方法(playAnimal)。我有一个创建为动物幻灯片类: 但下面不工作:
public class AnimalSlideshow
IEnumerable<IAnimal> AnimalItemList;
setUpSlideshow(list<Dogs> newDogData){
var dogList = newDogData.Where(dog => anyDog.anySpecies().toList());
//The dogList is a type List<Dog>.
AnimalItemList = dogList.Cast<IAnimal>();
}
它说我不能投了狗输入IAnimal。我很困惑,因为我将接口添加到Dog类。我刚刚开始学习C#。有没有我不明白的理解?
'Cast'不返回一个列表。它返回一个'IEnumerable',然后尝试添加一个'ToList'。 – juharr
狗和猫都不是'AnimalItem'。你不应该将它们投射到“IAnimal”吗? –
@jdmdevdotnet是一个*列表*的动物。你输入的内容会丢失。 –