12

重複の可能性:
int 値を返す列挙型
列挙型から数値を取得するにはどうすればよいですか?

これはこれらのいずれかの複製ではありません。質問MODを読んでくれてありがとう

いくつかのフラグ列挙項目が選択されているとします。

[Flags]
public enum Options
{
    None = 0,
    Option_A = 1,
    Option_B = 2,
    Option_C = 4,
    Option_D = 8,
}

Options selected = Options.Option_A | Options.Option_B;

の値はselected3 (つまり 2 + 1) に対応する必要があります

これをintにするにはどうすればよいですか?

selectedToString() をキャストしてから split() を各オプションにキャストする例を見てきました。

"Option_A | Option_B" --> { "Option_A", "Option_B" },

次に、それぞれの列挙型に再構成され、そこから値が取得されますが、少し面倒です。これらの値の合計を取得するより簡単な方法はありますか?

4

1 に答える 1

3

if を作成するだけなので、多くのオプションはありません

List<int> composedValues = new .... 
if((selected & Option_A) == Options.Option_A)
    composedValues.Add((int)Options.Option_A);
else if((selected & Option_B) == Options.Option_B)
    composedValues.Add((int)Options.Option_B);
else if(...)

最後に、リスト内の結果のすべての構成値のリストを取得しますcomposedValues

これがあなたが求めているものでない場合は、明確にしてください。

于 2012-08-08T13:37:34.860 に答える