In most cases, a simple cast is sufficient.
But sometimes you only get type at runtime. Enum.ToObject comes into play. It can be used in cases where you need to dynamically obtain enumeration values (or, possibly, metadata (attributes) associated with enumeration values). Here is a simple example:
enum Color { Red = 1, Green, Blue } enum Theme { Dark = 1, Light, NotSure } public static void Main(string[] args) { var elements = new[] { new { Value = 1, Type = typeof(Color) }, new { Value = 2, Type = typeof(Theme) }, new { Value = 3, Type = typeof(Color) }, new { Value = 1, Type = typeof(Theme) }, new { Value = 2, Type = typeof(Color) }, }; foreach (var element in elements) { var enumValue = Enum.ToObject(element.Type, element.Value); Console.WriteLine($"{element.Type.Name}({element.Value}) = {enumValue}"); } }
Exit:
Color(1) = Red Theme(2) = Light Color(3) = Blue Theme(1) = Dark Color(2) = Green
Read more about enum enumeration
The smallest
source share