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?
einfach casten.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
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.
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.