optimieren String-zu-Enum-Conversions in C#
c# bietet verschiedene Möglichkeiten, Zeichenfolgen in Enum -Werte umzuwandeln, aber ein direkter StatusEnum MyStatus = StatusEnum.Parse("Active");
-Ansatz ist nicht immer ideal. Lassen Sie uns effiziente Alternativen untersuchen.
Nutzung Enum.TryParse
für .NET Core und .NET Framework 4.0 und später liefert die Enum.TryParse
-Methode eine robuste Lösung:
<code class="language-csharp">Enum.TryParse("Active", out StatusEnum myStatus);</code>
c# 7 inline -variablen verbessern die Lesbarkeit weiter:
<code class="language-csharp">var myStatus = Enum.TryParse("Active", out var result) ? result : default;</code>
benutzerdefinierte Erweiterungsmethoden (für ältere Frameworks oder spezifische Anforderungen)
Wenn Enum.TryParse
nicht verfügbar ist, bieten benutzerdefinierte Erweiterungsmethoden Flexibilität:
<code class="language-csharp">public static T ParseEnum<T>(string value) { return (T)Enum.Parse(typeof(T), value, true); } var myStatus = ParseEnum<StatusEnum>("Active");</code>
Eine umfassendere Erweiterung verarbeitet null oder ungültige Eingaben anmutig:
<code class="language-csharp">public static T ToEnum<T>(this string value, T defaultValue) { if (string.IsNullOrEmpty(value)) { return defaultValue; } T result; return Enum.TryParse<T>(value, true, out result) ? result : defaultValue; } var myStatus = "Active".ToEnum(StatusEnum.None);</code>
Wichtiger Hinweis zu Erweiterungen: Während Erweiterungsmethoden nützlich sind, kann Überbeanspruchung zu Code -Unordnung führen. Betrachten Sie den Kontext und potenziellen Konflikte, bevor Sie integrierte Typen wie string
Erweiterungen hinzufügen. Die Verwendung einer statischen Helferklasse könnte in einigen Fällen ein saubererer Ansatz sein.
Das obige ist der detaillierte Inhalt vonWie kann ich Strings effizient in Aufzählungen in C#umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!