using System.Collections.Generic;
namespace ConsoleApplication1
public enum MembershipType
public class MembershipTypeInfo
public MembershipType Id { get; set; }
public string Name { get; set; }
public static void Main(string[] args)
var membershipTypes1 = GetMembershipTypes_HardCoded();
foreach (var t in membershipTypes1)
Console.WriteLine("{0}, {1}", (int)t.Id, t.Name);
var membershipTypes2 = GetMembershipTypes_Better();
foreach (var t in membershipTypes2)
Console.WriteLine("{0}, {1}", (int)t.Id, t.Name);
var membershipTypes3 = GetMembershipTypes_Dictionary();
foreach (var t in membershipTypes3)
Console.WriteLine("{0}, {1}", t.Key, t.Value);
public static MembershipTypeInfo[] GetMembershipTypes_HardCoded()
new MembershipTypeInfo() { Id = MembershipType.General, Name = MembershipType.General.ToString() },
new MembershipTypeInfo() { Id = MembershipType.Silver, Name = MembershipType.Silver.ToString() },
new MembershipTypeInfo() { Id = MembershipType.Golden, Name = MembershipType.Golden.ToString() },
public static MembershipTypeInfo[] GetMembershipTypes_Better()
var values = Enum.GetValues(typeof(MembershipType)).Cast<MembershipType>().ToArray();
var query = from value in values
select new MembershipTypeInfo
public static Dictionary<int, string> GetMembershipTypes_Dictionary()
var values = Enum.GetValues(typeof(MembershipType)).Cast<MembershipType>().ToArray();
var query = from value in values
return query.ToDictionary(x => x.Id, x => x.Name);