Можно ли отличить List<Subclass> до List<Superclass> в С# 4.0?
Что-то в этом роде:
class joe : human {}
List<joe> joes = GetJoes();
List<human> humanJoes = joes;
Разве это не ковариация?
если вы можете сделать:
human h = joe1 as human;
почему бы вам не удастся сделать
List<human> humans = joes as List<human>;
чем это было бы неправомерно делать (joe) людям [0], потому что этот предмет был заброшен.. и все были бы счастливы. Теперь единственной альтернативой является создание нового списка