私はいくつかの文字列を列挙型フラグに解析しましたが、単一の列挙型ビットフィールドにそれらをマージするうまい方法を見ることができません。IEnumerable <Enum>をC#でEnumに変換するにはどうすればよいですか?
私は、文字列値をループを使用している方法|そうのように、列挙型のオブジェクトに=キャスト値:
[Flags]
public enum MyEnum { None = 0, First = 1, Second = 2, Third = 4 }
...
string[] flags = { "First", "Third" };
MyEnum e = MyEnum.None;
foreach (string flag in flags)
e |= (MyEnum)Enum.Parse(typeof(MyEnum), flag, true);
私は私の列挙型に変換するために、Selectメソッドを使用して試してみましたしかし、私はIEnumerable<MyEnum>
と付き合っています。助言がありますか?あなたが使用することができますIEnumerable<MyEnum>
から
ですn 'IEnumerable'ではなく、 'IEnumerable 'ではありません。 –
BoltClock
@BoltClock、このコード例は文字列配列を示していますが、 'flags.select(flag =>(MyEnum)Enum.Parse(type、(MyEnum)、flag、true))'を使って 'IEnumerable'を返します。私は立ち往生している。 –
waj