¿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
}
¿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
}
Usted está buscando Enum.Parse
:
Sample e = (Sample)Enum.Parse(typeof(Sample), match);
Puede recorrer los valores o llamando Enum.GetValues
Enum.GetNames
.
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.
Si espera que falle a veces, use Enum.TryParse() –
@Nelson: 'Enum.TryParse' es nuevo en .Net 4.0. – SLaks
Enum.Parse(typeof(Sample), "A");
Uso Enum.Parse
(Sample)Enum.Parse(typeof(Samples), "A"); //returns Sample.A
@Mark Byers, es solo una declaración de ejemplo. Dale un descanso. – AMissico
foreach qué? ¿Qué estás tratando de probar exactamente? – Kobi
Estoy buscando para ver si "A" existe y devolver el valor del enumerador coincidente – Germ