2013-04-02 8 views
5

Hier ist eine „seltsame“ Frage zur Liste:Allgemeine Verfahren zur Umwandlung Enum <T>

Ist es möglich, ein Verfahren zu schaffen, wo in sie umwandeln was Enum aufzulisten. Hier ist mein Entwurf von dem, was ich gerade denke.

public class EnumTypes 
{ 
    public enum Enum1 
    { 
     Enum1_Choice1 = 1, 
     Enum1_Choice2 = 2 
    } 

    public enum Enum2 
    { 
     Enum2_Choice1 = 1, 
     Enum2_Choice2 = 2 
    } 

    public List<string> ExportEnumToList(<enum choice> enumName) 
    { 
     List<string> enumList = new List<string>(); 
     //TODO: Do something here which I don't know how to do it. 
     return enumList; 
    } 
} 

Nur neugierig, ob es möglich ist und wie es geht.

+0

Was die Liste enthalten sollte? –

+0

@Habib: Ich glaube, das ist kein Duplikat. Weil der Benutzer als Parameter entweder 'Enum1' oder 'Enum2' übergeben kann. – Musikero31

+0

@ LasseV.Karlsen: Wenn möglich, der Schlüssel und der Wert der Enumeration gewählt. – Musikero31

Antwort

11
Enum.GetNames(typeof(EnumType)).ToList() 

http://msdn.microsoft.com/en-us/library/system.enum.getnames.aspx

Oder, wenn Sie Lust bekommen möchten:

public static List<string> GetEnumList<T>() 
    { 
     // validate that T is in fact an enum 
     if (!typeof(T).IsEnum) 
     { 
      throw new InvalidOperationException(); 
     } 

     return Enum.GetNames(typeof(T)).ToList(); 
    } 

    // usage: 
    var list = GetEnumList<EnumType>(); 
+0

+1: Nette Art, generische Methode zu schreiben. –

+0

Eigentlich hat das mein Problem gelöst. Vielen Dank! – Musikero31

0
public List<string> ExportEnumToList(<enum choice> enumName) { 
List<string> enumList = new List<string>(); 
//TODO: Do something here which I don't know how to do it. 
foreach (YourEnum item in Enum.GetValues(typeof(YourEnum))){ 
    enumList.Add(item); 
} 
return enumList;  

}

Verwandte Themen