Приведение <int> .Cast <int?>, Примененное к общей коллекции перечислений, приводит к недопустимому исключению приведения.

enum Gender { Male, Female }

var k = new[] { Gender.Male }.Cast().ToList().Cast().ToList(); //alright

var p = new[] { Gender.Male }.Cast().Cast().ToList(); //InvalidCastException

В чем причина второго случая? Я знаю, я не могу бросить в штучной упаковкеenum вint? напрямую, но я делаю два этапа кастинга, т.е.Cast.Cast который должен работать.

Редактировать:

Это удивительно, учитывая следующие работы:

object o = Gender.Male;
int i = (int)o; // so here the cast is not to an entirely different type, which works

Ответы на вопрос(2)

Ваш ответ на вопрос