Я разобрал несколько строк в флаги Enum, но не вижу удобного способа объединить их в одно битовое поле Enum.
Метод, который я использую, перебирает строковые значения, а затем |= приводит значения к объекту 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 для преобразования в мой тип Enum, но затем я застрял с IEnumerable<MyEnum>
. Какие-либо предложения?
IEnumerable<string>
, а неIEnumerable<Enum>
. - person BoltClock   schedule 07.08.2011flags.select(flag => (MyEnum)Enum.Parse(typeof(MyEnum), flag, true))
действительно возвращаетIEnumerable<Enum>
, и именно здесь я застрял. - person waj   schedule 07.08.2011