Laden...

String in enum konvertieren und Eigenschaft im Struct zuweisen

Erstellt von Gerri3d vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.620 Views
G
Gerri3d Themenstarter:in
57 Beiträge seit 2017
vor 6 Jahren
String in enum konvertieren und Eigenschaft im Struct zuweisen

Hallo, ich habe folgendes enum:


        enum assembly: int { Muffe = 1, Nippel, GewindeRohr, SiedeRohr, Stahlrohr, Winkel

dazu noch ein Struct


        struct S_Codierung
        {
            public int idx;
            public string ID;
            public int diameter;
            public int thickness; // 2 strings ->10^1, 1^0
            public assembly asm;
            public int subtype;
        }

nun würde ich gerne aus einem text den wert umwandeln und in das Struct schreiben:


         actCodierung.asm = Convert.ToInt32(subStr);

klappt leider nicht. Wie geht man hier vor?

16.807 Beiträge seit 2008
vor 6 Jahren

einfach casten.

4.931 Beiträge seit 2008
vor 6 Jahren

Was steht denn in dem Text (subStr)? "Muffe", ... "Winkel" etc.?
Dann kannst du dafür die Enum.Parse-Methode benutzen (und dann entsprechend des Hinweises von Abt passend casten).

Convert.ToInt32 funktioniert nur mit Zahlenwerten.

C
2.121 Beiträge seit 2010
vor 6 Jahren

Der Anwendungsfall klingt nach Daten speichern und wieder laden. Dabei bitte dran denken was passiert falls du einen enum Wert später umbenennst.
Dann hast du unterschiedliche Strings für den selben Wert und kriegst frühere Strings nicht mehr umgewandelt.
Mit einem Unittest der alle jetzigen enum Werte abbildet findest du solche Fälle rechtzeitig.