¿Cómo recorrer todos los valores de enumeración en C#? [duplicar]
Esta pregunta ya tiene respuesta aquí:
¿Cómo enumero una enumeración en C#? 26 respuestas
public enum Foos
{
A,
B,
C
}
¿ Hay alguna manera de recorrer los posibles valores de Foos
?
¿Básicamente?
foreach(Foo in Foos)
Aceptado
Sí, puedes usar el GetValues
método :
var values = Enum.GetValues(typeof(Foos));
O la versión mecanografiada:
var values = Enum.GetValues(typeof(Foos)).Cast<Foos>();
Hace mucho tiempo agregué una función auxiliar a mi biblioteca privada para tal ocasión:
public static class EnumUtil {
public static IEnumerable<T> GetValues<T>() {
return Enum.GetValues(typeof(T)).Cast<T>();
}
}
Uso:
var values = EnumUtil.GetValues<Foos>();
foreach(Foos foo in Enum.GetValues(typeof(Foos)))
foreach (EMyEnum val in Enum.GetValues(typeof(EMyEnum)))
{
Console.WriteLine(val);
}
Crédito a Jon Skeet aquí: http://bytes.com/groups/net-c/266447-how-loop-each-items-enum