EDITAR: Oops, también eché de menos la etiqueta C# 2. Voy a dejar las otras opciones disponibles a continuación, pero:
En C# 2, usted es probablemente mejor usar List<T>.ConvertAll
:
List<MyEnumType> enumList = stringList.ConvertAll(delegate(string x) {
return (MyEnumType) Enum.Parse(typeof(MyEnumType), x); });
o con Unconstrained Melody:
List<MyEnumType> enumList = stringList.ConvertAll(delegate(string x) {
return Enums.ParseName<MyEnumType>(x); });
en cuenta que esto Supongamos que realmente tiene un List<string>
para empezar, que es correcto para su título pero no para el cuerpo en su pregunta. Afortunadamente hay un equivalente Array.ConvertAll
método estático que tendría que utilizar la siguiente manera:
MyEnumType[] enumArray = Array.ConvertAll(stringArray, delegate (string x) {
return (MyEnumType) Enum.Parse(typeof(MyEnumType), x); });
Respuesta original
Dos opciones:
Uso y Enum.Parse un molde en una consulta LINQ:
var enumList = stringList
.Select(x => (MyEnumType) Enum.Parse(typeof(MyEnumType), x))
.ToList();
o
var enumList = stringList.Select(x => Enum.Parse(typeof(MyEnumType), x))
.Cast<MyEnumType>()
.ToList();
@All, parece que no es una pregunta estúpida. Gracias por todas las respuestas rápidas de nuevo. Practicaré cualquiera de las soluciones simplemente vuélvala como mi caso de aprendizaje. –