2010-05-03 29 views
5

¿Cuál es la mejor forma de recorrer una enumeración buscando un valor que coincida?Bucle a través de la enumeración

string match = "A"; 

enum Sample { A, B, C, D } 

foreach(...) { 
    //should return Sample.A 
} 
+0

foreach qué? ¿Qué estás tratando de probar exactamente? – Kobi

+0

Estoy buscando para ver si "A" existe y devolver el valor del enumerador coincidente – Germ

Respuesta

0
public Sample matchStringToSample(string match) 
{ 
    return (Sample)Enum.Parse(typeof(Sample), match); 
} 

Habría que manejar el caso en que el partido de cadena no es un valor de enumeración válida. Enum.Parse arroja un ArgumentException en ese caso.

+1

Si espera que falle a veces, use Enum.TryParse() –

+1

@Nelson: 'Enum.TryParse' es nuevo en .Net 4.0. – SLaks

0
Enum.Parse(typeof(Sample), "A"); 
0

Uso Enum.Parse

(Sample)Enum.Parse(typeof(Samples), "A"); //returns Sample.A 
+0

@Mark Byers, es solo una declaración de ejemplo. Dale un descanso. – AMissico