我已經將幾個字符串解析成Enum標誌,但看不到將它們合併成單個Enum位域的整潔方式。如何將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>
。有什麼建議麼?
這是一個n'IEnumerable',而不是'IEnumerable '。 –
BoltClock
@BoltClock,代碼示例顯示了一個字符串數組,但是使用'flags.select(flag =>(MyEnum)Enum.Parse(typeof(MyEnum),flag,true))''返回一個'IEnumerable',那就是我卡住了。 –
waj