I\'m wondering why I can\'t just cast (I have a vague idea this might have something to do with that co/contravariance stuff?), and am I forced to copy the elements of the f
You can not cast, because it still is a Dictionary>
Lets say
Dictionary> d1 = new Dictionary>();
Dictionary> d2 = (Dictionary>)d1; // this is the invalid cast
d2["one"] = new int[0]; // valid for d2
List list1 = d1["one"]; // would fail