How about an
Extension Method that can return an int/string dictionary across whatever type of Enum it sees?
namespace System {
public static class SysExtension {
public static Dictionary<int, string> ToDictionary(this Enum EnumList) {
Dictionary<int, string> ED = new Dictionary<int, string>();
Type ET = EnumList.GetType();
foreach (int i in Enum.GetValues(ET)) {
ED.Add(i, Enum.GetName(ET, i));
}
return ED;
}
}
}
And then you could just call it like so...
Dictionary<int, string> x = new MyEnum().ToDictionary();
Here is the full script I used for testing:
using System;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApp1 {
class Program {
static void Main(string[] args) {
Dictionary<int, string> x = new MyEnum().ToDictionary();
foreach (KeyValuePair<int, string> kvp in x) {
Console.WriteLine(string.Format("{0}: {1}", kvp.Key, kvp.Value));
}
Console.ReadLine();
}
public enum MyEnum {
Alpha = 1,
Bravo = 2,
Charlie = 3,
Delta = 4,
Echo = 5,
Foxtrot = 6,
Golf = 7,
Hotel = 8,
Juliet = 10,
}
}
}
namespace System {
public static class SysExtension {
public static Dictionary<int, string> ToDictionary(this Enum EnumList) {
Dictionary<int, string> ED = new Dictionary<int, string>();
Type ET = EnumList.GetType();
foreach (int i in Enum.GetValues(ET)) {
ED.Add(i, Enum.GetName(ET, i));
}
return ED;
}
}
}