Ich verbinde ein enum
an ein Eigenschaftsraster wie folgt:
Mein Problem: Ich erhalte sofort Daten, wenn das Programm läuft. Ich lese den Netzwerkadapter und speichere dann die Adapternamen in myArray
wie folgt:
Ist es moeglich, myArray
in myEnum
mit c # zu konvertieren? Danke.
Sie möchten Enum.Parse
: Ссылка
MyProperty = (myEnum)Enum.Parse(typeof(myEnum), myArray[0]);
Wie Sie das mit Ihrem Array verwenden wollen, denke ich ist Ihren Bedürfnissen angepasst.
EDIT: Ist es möglich, Ihre Adapternamen als Enumeration in Ihrem Array zu speichern? Gibt es einen Grund, warum das Array muss Zeichenfolgen sein?
Wenn Ihre Quelldaten nicht absolut zuverlässig sind, sollten Sie in Erwägung ziehen, nur die Elemente zu konvertieren, die tatsächlich analysiert werden können, indem Sie TryParse()
und IsDefined()
verwenden.
Ein Array von myEnums aus einem Array von Strings kann mit folgendem Code ausgeführt werden:
%Vor% Beachten Sie, dass IsDefined()
nur mit einem einzelnen Aufzählungswert funktioniert. Wenn Sie eine [Flags]
enum haben, schlagen Kombinationen den Test fehl.
Sie müssen Parse nicht verwenden, wenn Sie den Namen des Enums erhalten möchten. Verwenden Sie nicht .ToString()
, verwenden Sie stattdessen diese Option. Zum Beispiel, wenn ich Ethernet
zurückgeben möchte, würde ich Folgendes tun:
Fügen Sie in Ihrer Hauptklasse diese Codezeile hinzu:
%Vor%Wenn Sie über die Enum aufzählen wollen Werte, die Sie dies tun könnten, die Werte zu erhalten:
%Vor% Verwenden Sie Enum.Parse
in der Schleife für jedes Element im Array.
Tags und Links arrays c# winforms enums propertygrid