c#
で文字列間変換を最適化しますC#は、文字列を列挙値に変換するいくつかの方法を提供しますが、直接的なStatusEnum MyStatus = StatusEnum.Parse("Active");
アプローチは必ずしも理想的ではありません。 効率的な代替案を探りましょう。
レバレッジEnum.TryParse
メソッドは堅牢なソリューションを提供します:
Enum.TryParse
<code class="language-csharp">Enum.TryParse("Active", out StatusEnum myStatus);</code>
<code class="language-csharp">var myStatus = Enum.TryParse("Active", out var result) ? result : default;</code>
Enum.TryParse
<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>
拡張メソッドは有用ですが、過剰使用はコードクラッターにつながる可能性があります。
などの組み込みタイプに拡張機能を追加する前に、コンテキストと潜在的な競合を考えてください。 静的ヘルパークラスを使用することは、場合によってはよりクリーンなアプローチかもしれません。<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>
以上が文字列をC#の列挙に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。