2 начина за конвертиране/превръщане на int в enum в C#
Има 2 начина за преобразуване или превръщане на int в enum в C#
- Използване на явното присвояване на типа в C#.
- Използване на метода Enum.ToObject()
On this page
Решение 1: Използване на изрично присвояване на типове в C#
Простият начин за преобразуване на int в enum в езика C# е да се използва изрично избиране на типа.
Нека разгледаме един пример, за да го разберем по-добре.
Имаме enum тип, наречен LogLevel, който представлява различни нива на регистриране.
public enum LogLevel
{
   ERROR=1, 
   WARN=2, 
   INFO=3, 
   DEBUG=4
}
int logEnumInteger = 1;
LogLevel errorEnum = (LogLevel) logEnumInteger;
Console.WriteLine(errorEnum.ToString());//ERROR
Явното хвърляне се извършва чрез поставяне на enum тип в скоби пред стойността на int.
Но има проблем с горното C# int към enum преобразуване.
Какво става, ако стойността int не съществува в променливата C# Enum?
int logEnumInteger = 100;
LogLevel unknownEnum = (LogLevel) logEnumInteger;
Console.WriteLine(unknownEnum.ToString());//100
Това няма да доведе до изключение.
Затова е по-добре да проверите дали стойността int съществува в C# Enum, преди да я превърнете в цяло число.
Проверете дали цяло число съществува или не в C# enum променливата 
За да получим всички целочислени стойности в C# Enum, можем да използваме метода Enum.GetValues.
Конвертираме ги в списък C#, за да можем да използваме метода list.Contains(), за да проверим дали даденото цяло число съществува в enum променлива.
var intValue = 100;
var enumValues = Enum.GetValues(typeof(LogLevel)).Cast<int>().ToList();
if(enumValues.Contains(intValue)){
   Console.WriteLine("We can Cast C# int to Enum");  
   LogLevel loggingValue = (LogLevel) intValue;
}else{
  Console.WriteLine("Cannot Cast C# int to Enum");
}
Можем да използваме метода Enum.IsDefined(), за да проверим дали преобразуваната целочислена стойност съществува в дадената enum тип.
var enumValue = (LogLevel)1;
if (Enum.IsDefined(typeof(LogLevel), enumValue)){
   Console.WriteLine("The converted int to enum value is",enumValue);
}else{
   Console.WriteLine("Cannot Convert int to Enum",enumValue);
}
Решение 2: Използвайте метода Enum.ToObject() 
Можем да използваме метода C# Enum.ToObject(), като преобразуваме стойността на int в enum в C#.
var enumValue = Enum.ToObject(typeof(LogLevel),1);
Console.WriteLine(enumValue);
//ERROR
Console.WriteLine(enumValue.GetType());
//LogLevel