У меня есть эти два класса
public class A {}
public class B : A {}
И приведение из класса A
в класс B
работает нормально.
B testB1 = new B();
A testA1 = testB1;
B testB2 = (B)testA1; //this works
Но: Почему это приведение не работает?
List<B> testB1List = new List<B>();
List<A> testA1List = ((IEnumerable<A>)testB1List).ToList();
List<B> testB2List = ((IEnumerable<B>)testA1List).ToList(); //not working
Решение:
List<B> testB1List = new List<B>();
List<A> testA1List = ((IEnumerable<A>)testB1List).ToList();
List<B> testB2List = testA1List.Cast<B>().ToList();
Но почему это так?