Нет, но вы можете привести int
к enum
, если значение, которое вы используете, определено в enum
, однако вы делаете это на свой страх и риск:
Days currentDay = (Days)index;
Если вы действительно хотите быть в безопасности, вы можете проверить, определено ли оно в первую очередь, но это потребует некоторого бокса и т. Д. И снизит производительность.
// checks to see if a const exists with the given value.
if (Enum.IsDefined(typeof(Days), index))
{
currentDay = (Days)index;
}
Если вы знаете, что ваше перечисление является заданным непрерывным значениемдиапазон (т. е. пн = 0 по вс = 6) вы можете сравнить:
if (index >= (int)Days.Mon && index <= (int)Days.Sun)
{
currentDay = (Days) index;
}
Вы также можете использовать массив, переданный обратно Enum.GetValues()
, но, опять же, он тяжелее, чем приведение:
Day = (Day)Enum.GetValues(typeof(Day))[index];