C#IList <IList <(ClassType)>>的参数

ait*_*tee 1 c# generics parameters casting list

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

从阅读各地现在看来,这必须以某种方式涉及到像这样.

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 );
Run Code Online (Sandbox Code Playgroud)

如何要求列表实际上是列表列表?我似乎无法理解我做错了什么.

谢谢,

Jon*_*eet 5

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

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

这可能没关系:

List<IList<SimpleClass>> lists = new List<IList<SimpleClass>>();
Run Code Online (Sandbox Code Playgroud)