以下の「x」が変換される理由がわかりませんが、「y」と「z」は変換されません。
var list = new List<List<int>>();
IEnumerable<List<int>> x = list;
List<IEnumerable<int>> y = list;
IEnumerable<IEnumerable<int>> z = list;
新しい共分散機能は単にジェネリックのジェネリックでは機能しないのですか、それとも何か間違っていますか? (y と z を機能させるために .Cast<> を使用することは避けたいと思います。)