2013-05-15 151 views
1

我似乎无法弄清楚为什么以下不起作用。IList的C#参数<IList <(ClassType)>>

从阅读周围看来,它似乎必须以某种方式与this之类的东西有关。

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

我该如何要求列表实际上是一个列表清单?我似乎无法理解我做错了什么。

谢谢,

回答

5

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>>(); 
+0

我现在看得很清楚。哈。非常感谢。我也读过你的其他答案,以及这篇文章与其他文章之间的关系。这说得通。 – aitee

相关问题