J'ai un enum que je voudrais afficher toutes les valeurs possibles de. Existe-t-il un moyen d'obtenir un tableau ou une liste de toutes les valeurs possibles de l'énum au lieu de créer manuellement une telle liste? par exemple. Si j'ai un enum:
public enum Enumnum { TypeA, TypeB, TypeC, TypeD }
comment pourrais-je obtenir un List<Enumnum>
qui contient { TypeA, TypeB, TypeC, TypeD }
?
Cela vous donne un tableau clair des valeurs enum en utilisant Enum.GetValues
:
var valuesAsArray = Enum.GetValues(typeof(Enumnum));
Et cela vous donne une liste générique:
var valuesAsList = Enum.GetValues(typeof(Enumnum)).Cast<Enumnum>().ToList();
Essayez ce code:
Enum.GetNames(typeof(Enumnum));
Ceci retourne un string[]
avec tous les noms enum de l'énum choisi.
Enum.GetValues(typeof(Enumnum));
renvoie un tableau des valeurs dans l'énumération.
Quelque chose de peu différent:
typeof(SomeEnum).GetEnumValues();
avec ça:
string[] myArray = Enum.GetNames(typeof(Enumnum));
et vous pouvez accéder au tableau de valeurs comme ceci:
Array myArray = Enum.GetValues(typeof(Enumnum));
Vous voudrez peut-être faire comme ceci:
public enum Enumnum {
TypeA = 11,
TypeB = 22,
TypeC = 33,
TypeD = 44
}
Toutes les valeurs int de cette enum
est 11,22,33,44
.
Vous pouvez obtenir ces valeurs par ceci:
var enumsValues = Enum.GetValues(typeof(Enumnum)).Cast<Enumnum>().ToList().Select(e => (int)e);
string.Join(",", enumsValues)
est 11,22,33,44
.
Vous pouvez utiliser
Enum.GetValues(typeof(SomeEnum)).Cast<SomeEnum>().ToArray();
Cela retourne un tableau!
Si vous préférez une méthode plus générique, la voici. Vous pouvez ajouter plus de convertisseurs selon vos besoins.
public static class EnumConverter
{
public static string[] ToNameArray<T>()
{
return Enum.GetNames(typeof(T)).ToArray();
}
public static Array ToValueArray<T>()
{
return Enum.GetValues(typeof(T));
}
public static List<T> ToListOfValues<T>()
{
return Enum.GetValues(typeof(T)).Cast<T>().ToList();
}
public static IEnumerable<T> ToEnumerable<T>()
{
return (T[])Enum.GetValues(typeof(T));
}
}
Exemples de mise en œuvre:
string[] roles = EnumConverter.ToStringArray<ePermittedRoles>();
List<ePermittedRoles> roles2 = EnumConverter.ToListOfValues<ePermittedRoles>();
Array data = EnumConverter.ToValueArray<ePermittedRoles>();
aussi vous pouvez utiliser
var enumAsJson=typeof(SomeEnum).Name + ":[" + string.Join(",", Enum.GetValues(typeof(SomeEnum)).Cast<SomeEnum>().Select(e => e.ToString())) + "]";
pour obtenir tous les éléments enum au format json.
Le PO a demandé Comment obtenir un tableau de toutes les valeurs enum
en C #?
Et si vous voulez obtenir un tableau de valeurs enum
sélectionnées en C #?
Votre Enum
enum WeekDays
{
Sunday,
Monday,
Tuesday
}
Si vous voulez simplement sélectionner Sunday
dans votre Enum
.
WeekDays[] weekDaysArray1 = new WeekDays[] { WeekDays.Sunday };
WeekDays[] weekDaysArray2 = Enum.GetValues(typeof(WeekDays)).Cast<WeekDays>().Where
(x => x == WeekDays.Sunday).ToArray();
Crédits vont au tl compétent.
Références:
Hope aide quelqu'un.