Tôi đã phân tích cú pháp một số chuỗi thành các cờ Enum nhưng không thể nhìn thấy một cách gọn gàng để hợp nhất chúng vào một bitum Enum đơn lẻ.Làm cách nào để chuyển đổi IEnumerable <Enum> thành Enum trong C#?
Phương pháp Tôi đang sử dụng vòng lặp thông qua các giá trị chuỗi sau đó | = các giá trị đúc đến đối tượng Enum, như vậy:
[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);
Tôi đã thử sử dụng một phương thức Select để chuyển đổi sang kiểu Enum của tôi , nhưng sau đó tôi bị kẹt với IEnumerable<MyEnum>
. Bất kỳ đề xuất?
Đó là một n 'IEnumerable', không phải là một 'IEnumerable '. –
BoltClock
@BoltClock, ví dụ mã cho thấy một mảng chuỗi, nhưng sử dụng 'flags.select (flag => (MyEnum) Enum.Parse (typeof (MyEnum), cờ, true))' trả về một 'IEnumerable' và đó là nơi Tôi bị kẹt. –
waj