8
votes

Obtenez des valeurs d'un énorme dans une liste générique

Je ne sais pas comment convertir la ligne suivante de VB en C #: xxx pré>

Ma version ne fonctionne pas: p>

public static void BindToEnum<T>()
{
    List<T> values = new List<T>(System.Enum.GetValues(typeof(T)));
    //...
}


0 commentaires

3 Réponses :


17
votes

Utilisation LINQ:

List<T> list = System.Enum.GetValues(typeof(T))
                          .Cast<T>()
                          .ToList<T>();


0 commentaires

4
votes

Il suffit d'ajouter un .cast () : xxx


0 commentaires

0
votes

Basé sur ce post, je me suis créé une fonction pour le faire pour moi; C'est formidable dans des tests unitaires lorsque vous souhaitez faire boucler toutes les valeurs d'une énorme pour vérifier que quelque chose ne fonctionne que sur certaines valeurs.

var values = GetEnumValues<SomeTypeCode>();

var typesToAlwaysShow = values.Where(ScreenAdapter.AlwaysShowThisType).Select(q => (int)q).ToList();

Assert.Equal("101,102,105,205", string.Join(",", typesToAlwaysShow));


1 commentaires

Peut être amélioré en ajoutant où T: Enum