İndexe göre bir Enum un değerini elde etmek

Temmuz 2012 | Burhan Çetinkaya, Yazılım Geliştirme Uzmanı

Bir enumeration'ın değerini kod tarafında elde etmek için bir extended method yazdım. Enum.GetName(); ile aynı işi yapıyor fakat daha kolay cast etmek için string yerine benim method object dönüyor.


Extented Method

public static Enum GetEnumByIndex(this int index, Type targetEnum)
{
var type = targetEnum.GetType();
var values = Enum.GetValues(targetEnum);
return (Enum)values.GetValue(index);
}

Kullanılımı

var index = 0;
//Bu değer Enums.Gender enum undaki 0. elemanın indexi
var enumValue = (Enums.Gender)index.GetEnumByIndex(typeof(Enums.Gender));

//Extended methodu çağırıp, hangi enum üzerinde işlem yapacağını
//söylüyoruz ve bize object olarak değeri dönüyor.