Возвращение IList >

У меня есть метод, который строит списки списков. Я хотел бы, чтобы возвращаемый тип использовал общий интерфейс IList <>, чтобы уменьшить связь с конкретным типом List <> ниже по течению. Однако компилятор борется с преобразованием типов.

public IList<IList<T>> Foo<T>()
    {
        return new List<List<T>>();
    } 

Почему это не удается, если это работает:

public IList<T> Foo<T>()
    {
        return new List<T>();
    } 

Какой самый элегантный выход из этой неразберихи?

6
задан Jason Suárez 15 November 2011 в 20:00
поделиться