フラグを使用して列挙型の値を反復処理する
質問:
フラグをサポートする列挙型。設定されている個々の単一ビット値を具体的に反復するにはどうすればよいですか。特定の変数? Enum.GetValues を使用して列挙型全体の反復処理を回避することはできますか?
答え:
はい、enum 変数内の個々のフラグ値を反復処理することは可能です。列挙型全体を列挙して値が設定されているかどうかを確認する必要はありません。これは、次のコード スニペットを使用して実現できます。
static IEnumerable<Enum> GetFlags(Enum input) { foreach (Enum value in Enum.GetValues(input.GetType())) if (input.HasFlag(value)) yield return value; }
説明:
このアプローチを使用すると、列挙型の個々のフラグ値を効率的に反復できます。変数。
以上がC# 列挙型で設定されたフラグのみを反復処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。