Enum Lookup, bir enum türünde bulunan sabitlerin daha geniş bir anlamda ilişkilendirilmesi veya sınıflandırılması gerektiği durumlarda kullanışlı olur. Enum Lookup, enum sabitlerini belirli bir kategorilendirme veya gruplama altında toplamak ve bu gruplara erişmek için kullanılan bir yapıdır.
Bir enum ve bu enum için bir Lookup sınıfı örneği
public enum YerlesimYeri
{
Belirtilmemis,
Koy,
Kasaba,
Sehir
}
public static class YerlesimYeriLookup
{
private static Dictionarystring> _yerlesimYerleri = new Dictionarystring>()
{
{ YerlesimYeri.Belirtilmemis, "Belirtilmemiş" },
{ YerlesimYeri.Koy, "Köy" },
{ YerlesimYeri.Kasaba, "Kasaba" },
{ YerlesimYeri.Sehir, "Şehir" }
};
public static string GetDisplayName(YerlesimYeri yerlesimYeri)
{
return _yerlesimYerleri[yerlesimYeri];
}
public static IEnumerable<string> GetDisplayNames()
{
return _yerlesimYerleri.Values;
}
public static YerlesimYeri GetValueFromDisplayName(string displayName)
{
return _yerlesimYerleri.FirstOrDefault(x => x.Value == displayName).Key;
}
public static IEnumerable GetValues()
{
return Enum.GetValues(typeof(YerlesimYeri)).Cast();
}
}