C# Parameter of IList<IList<(ClassType)>>

本文关键字:gt lt IList Parameter ClassType of | 更新日期: 2023-09-27 18:13:39

我似乎不明白为什么下面的代码不起作用。

从周围的阅读来看,它似乎与这样的事情有某种联系。

public class Test<T>
{
    public void SomeFunction(IList<IList<T>> ListOfLists)
    {
    }
}
....
List<List<SimpleClass>> lists = new List<List<SimpleClass>>();
new Test<SimpleClass>().SomeFunction( (IList<IList<SimpleClass>>)lists );

我怎么能要求一个列表实际上是一个列表的列表?我似乎不明白我做错了什么。

谢谢,

C# Parameter of IList<IList<(ClassType)>>

List<List<SimpleClass>>不是IList<IList<SimpleClass>>

例如,对于后一种类型,可以调用lists.Add(new SimpleClass[5]),因为SimpleClass[]实现了IList<SimpleClass>。但List<List<SimpleClass>>不能这样做,因为每个元素都必须是List<SimpleClass>

这是可以的:

List<IList<SimpleClass>> lists = new List<IList<SimpleClass>>();