Recorrer todos los valores de un enum

30/04/2006 - 19:23 por solved by design | Informe spam
Hola.

¿Cómo puedo recorrer todos los valores definidos de un enum?

La idea es tener una enumeración, y a partir de los propios nombres de la
misma, crear diccionario o lista de strings con dichos nombres.

Algo así:

static enum Valores
{
Valor1,
Valor2,
Valor3
};

foreach(Valores v in Valores)
Diccionario.Add(v,v.ToString())

Ya sé que es rizar el rizo, pero me hace falta algo así y estoy casi seguro
que se puede hacer, pero no localizo la sintaxis correcta.

De este modo, cada vez que añada un valor a la enumeración, tendré todo el
código actualizado automáticamente.

Gracias de antemano.

A falta de manos, buenos son pies.

Preguntas similare

Leer las respuestas

#1 Octavio Hernandez
01/05/2006 - 00:36 | Informe spam
Hola,

Usa el método Enum.GetValues():
enum KK { kk1, kk2, kk3 }

class Program

{

static void Main(string[] args)

{

foreach (KK k in Enum.GetValues(typeof(KK)))

Console.WriteLine(k.ToString());

Console.ReadLine();

}


}

Salu2 - Octavio


"solved by design" escribió en el mensaje
news:
Hola.

¿Cómo puedo recorrer todos los valores definidos de un enum?

La idea es tener una enumeración, y a partir de los propios nombres de la
misma, crear diccionario o lista de strings con dichos nombres.

Algo así:

static enum Valores
{
Valor1,
Valor2,
Valor3
};

foreach(Valores v in Valores)
Diccionario.Add(v,v.ToString())

Ya sé que es rizar el rizo, pero me hace falta algo así y estoy casi
seguro que se puede hacer, pero no localizo la sintaxis correcta.

De este modo, cada vez que añada un valor a la enumeración, tendré todo el
código actualizado automáticamente.

Gracias de antemano.

A falta de manos, buenos son pies.


Respuesta Responder a este mensaje
#2 Eduardo A. Morcillo [MS MVP VB]
01/05/2006 - 00:45 | Informe spam
¿Cómo puedo recorrer todos los valores definidos de un enum?



Enum.GetNames te devuelve un array con los nombres:

string[] valores = Enum.GetNames(typeof(Valores));

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
Respuesta Responder a este mensaje
#3 Eduardo A. Morcillo [MS MVP VB]
01/05/2006 - 00:48 | Informe spam
Y si despues quieres obtener el valor a partir del nombre usa Enum.Parse:

Valores v = (Valores) Enum.Parse(typeof(Valores), "Valor1");

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
Respuesta Responder a este mensaje
#4 solved by design
01/05/2006 - 11:18 | Informe spam
"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> wrote in message
news:
Y si despues quieres obtener el valor a partir del nombre usa Enum.Parse:

Valores v = (Valores) Enum.Parse(typeof(Valores), "Valor1");

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C




Eso era, gracias a los dos.

Por cierto, todo esto que pregunto por aquí realmente lo estoy haciendo en
C++/CLI, pero esos grupos están muertos... Ventajas del .NET ;-)

Atender y entender para aprender.
Respuesta Responder a este mensaje
#5 Octavio Hernandez
01/05/2006 - 11:45 | Informe spam
Hola,

Por cierto, todo esto que pregunto por aquí realmente lo estoy haciendo en
C++/CLI, pero esos grupos están muertos... Ventajas del .NET ;-)



Bueno, pues entonces serás de los muy pocos (creo) que tendrá experiencia
con C++/CLI.
Yo lo encuentro super-atractivo, siempre me gustó C++ y con C++/CLI se ha
hecho un excelente trabajo (que empezó por formar un equipo de clase mundial
liderado por gente como Herb Sutter y Stan Lippman). Lo que pasa es que el
tiempo no alcanza ;-(

Slds - Octavio
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida