ホームページ > バックエンド開発 > C++ > 文字列をC#の列挙に効率的に変換するにはどうすればよいですか?

文字列をC#の列挙に効率的に変換するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-02-02 00:46:16
オリジナル
459 人が閲覧しました

How Can I Efficiently Convert Strings to Enumerations in C#?

c#

で文字列間変換を最適化します

C#は、文字列を列挙値に変換するいくつかの方法を提供しますが、直接的なStatusEnum MyStatus = StatusEnum.Parse("Active");アプローチは必ずしも理想的ではありません。 効率的な代替案を探りましょう。

レバレッジEnum.TryParse メソッドは堅牢なソリューションを提供します:

Enum.TryParse

c#7のインラインアウト変数は、読みやすさをさらに向上させます:
<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>
ログイン後にコピー
カスタム拡張メソッド(古いフレームワークまたは特定のニーズ用)が利用できない場合、カスタムエクステンションメソッドは柔軟性を提供します: より包括的な拡張機能は、NULLまたは無効な入力を優雅に処理します:

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート