Konvertieren Sie string-Array im laufenden Betrieb

8

Ich verbinde ein enum an ein Eigenschaftsraster wie folgt:

%Vor%

Mein Problem: Ich erhalte sofort Daten, wenn das Programm läuft. Ich lese den Netzwerkadapter und speichere dann die Adapternamen in myArray wie folgt:

%Vor%

Ist es moeglich, myArray in myEnum mit c # zu konvertieren? Danke.

    
new bie 12.12.2012, 14:30
quelle

5 Antworten

7

Sicher! Das ist alles was du brauchst:

%Vor%     
Joshua 12.12.2012 14:49
quelle
2

Sie möchten Enum.Parse : Ссылка

verwenden

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?

    
Chris Sinclair 12.12.2012 14:32
quelle
2

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.

    
Suncat2000 14.02.2017 14:33
quelle
1

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:

%Vor%

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%     
MethodMan 12.12.2012 14:50
quelle
0

Verwenden Sie Enum.Parse in der Schleife für jedes Element im Array.

    
Jakub Konecki 12.12.2012 14:31
quelle