4393 Stimmen

Wie man eine Aufzählung durchführt

Wie können Sie eine Aufzählung von enum in C#?

Der folgende Code lässt sich z. B. nicht kompilieren:

public enum Suit
{
    Spades,
    Hearts,
    Clubs,
    Diamonds
}

public void EnumerateAllSuitsDemoMethod()
{
    foreach (Suit suit in Suit)
    {
        DoSomething(suit);
    }
}

Und es gibt den folgenden Kompilierzeitfehler:

Anzug" ist ein "Typ", wird aber wie eine "Variable" verwendet

Es scheitert an der Suit Schlüsselwort, das zweite.

24 Stimmen

6 Stimmen

Vielleicht möchten Sie sich informieren über die Besonderheiten von C#-Enums in dem dies und andere nützliche Informationen über Enum erörtert werden

2voto

Termininja Punkte 6127

Sie können auch direkt an die öffentlichen statischen Mitglieder der Aufzählung binden, indem Sie Reflection verwenden:

typeof(Suit).GetMembers(BindingFlags.Public | BindingFlags.Static)
    .ToList().ForEach(x => DoSomething(x.Name));

2voto

Inam Abbas Punkte 400

Ich denke, es hilft Ihnen, es zu versuchen.

public class Program
{

    public static List<T> GetEnamList<T>()
    {
        var enums = Enum.GetValues(typeof(T)).Cast<T>().Select(v => v).ToList();
        return enums;
    }
    private void LoadEnumList()
    {
        List<DayofWeek> dayofweeks = GetEnamList<DayofWeek>();

        foreach (var item in dayofweeks)
        {
            dayofweeks.Add(item);
        }
    }
}

    public enum DayofWeek
    {
        Monday,
        Tuesday,
        Wensday,
        Thursday,
        Friday,
        Sturday,
        Sunday
    }

0voto

Erçin Dedeoğlu Punkte 4262

LINQ Generischer Weg:

    public static Dictionary<int, string> ToList<T>() where T : struct =>
        ((IEnumerable<T>)Enum.GetValues(typeof(T))).ToDictionary(value => Convert.ToInt32(value), value => value.ToString());

Verwendung:

        var enums = ToList<Enum>();

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X