;На це питання вже є відповідь тут:. https://stackoverflow.com/questions/105372/how-to-enumerate-an-enum 26 відповідей.
public enum Foos
{
A,
B,
C
}
Чи існує спосіб перебору можливих значень Foos
?
В принципі?
foreach(Foo in Foos)
Так, ви можете використовувати метод GetValues
:
var values = Enum.GetValues(typeof(Foos));
Або типізовану версію:
var values = Enum.GetValues(typeof(Foos)).Cast<Foos>();
Я вже давно додав до своєї особистої бібліотеки допоміжну функцію саме для такого випадку:
public static class EnumUtil {
public static IEnumerable<T> GetValues<T>() {
return Enum.GetValues(typeof(T)).Cast<T>();
}
}
Використання:
var values = EnumUtil.GetValues<Foos>();
foreach(Foos foo in Enum.GetValues(typeof(Foos)))