Как преобразовать List в List ?

У меня есть интерфейс, определенный как:

public interface MyInterface {
     object foo { get; set; };
}

, и класс, реализующий этот интерфейс:

public class MyClass : MyInterface {
     object foo { get; set; }
}

Затем я создаю функцию который возвращает ICollection, например:

public ICollection<MyClass> Classes() {
    List<MyClass> value;

    List<MyInterface> list = new List<MyInterface>(
        new MyInterface[] {
            new MyClass {
                ID = 1
            },
            new MyClass {
                ID = 1
            },
            new MyClass {
                ID = 1
            }
        });

    value = new List<MyClass>((IEnumerable<MyClass>) list);

    return value;
}

Он будет скомпилирован, но выдаст

Невозможно преобразовать объект типа 'System.Collections.Generic.List 1 [MyInterface]' печатать «System.Collections.Generic.IEnumerable 1 [MyClass]».

исключение. Что я делаю не так?

36
задан acermate433s 16 May 2011 в 15:37
поделиться