2013-05-15 3 views
1

Я не могу понять, почему следующее не работает.C# Параметр IList <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

Смежные вопросы