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 );
我怎么能要求一个列表实际上是一个列表的列表?我似乎不明白我做错了什么。
谢谢,
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>>();