【发布时间】:2018-11-21 16:54:28
【问题描述】:
我有以下方法
List<List<Animal>> animalsList = new List<List<Animal>>();
public void AddAnimal(List<Animal> animals)
{
animalsList.Add(animals);
}
List<Dog>如何使用这种方法?
我试过了
public void AddAnimal<T>(List<T> animals) where T: Animal
{
animalsList.Add(animals);
}
这也不起作用。有没有办法定义这样的方法?
我会使用IEnumerable<Animal>,但我需要将.Add()、.Clear() 和此类方法反映到内部列表中,而无需明确执行。
【问题讨论】:
-
看起来
Animal应该是一个接口。 -
@ozgur 因为那如果
Dog实现了接口,你就可以轻松做到animalsList.Add(listOfDogs); -
后一个例子加上一个额外的 .Cast
会修复它吗? -
@Sam 创建一个新列表。然后我失去了对那些内部列表的引用。