1

我似乎无法弄清楚为什么以下不起作用。

从周围阅读看来,它一定与这样的事情有关

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 );

我怎样才能要求一个列表实际上是一个列表列表?我似乎无法理解我做错了什么。

谢谢,

4

1 回答 1

5

AList<List<SimpleClass>>不是IList<IList<SimpleClass>>.

例如,对于后一种类型,您可以调用lists.Add(new SimpleClass[5])as SimpleClass[]implements IList<SimpleClass>。但是你不能用 a 来做到这一点List<List<SimpleClass>>,因为每个元素都必须是 a List<SimpleClass>

不过这没关系:

List<IList<SimpleClass>> lists = new List<IList<SimpleClass>>();
于 2013-05-15T18:58:36.273 回答