Преобразовать список <string>в IEnumerable <myEnum>in C# - PullRequest
2 голосов
/ 06 апреля 2020

Я хочу преобразовать свой список в IEnumerable, я искал несколько методов, но ни один из них не работает.

У меня есть перечисление с именем MyEnum.

Мой код:

List<string> statusFilter = new List<string>();
statusFilter.Add(Data.MyEnum.New.ToString("d"));
statusFilter.Add(Data.MyEnum.Queued.ToString("d"));
statusFilter.Add(Data.MyEnum.InProgress.ToString("d"));

Я пробовал:

  1. IEnumerable<MyEnum> myEnum =(IEnumerable<Data.MyEnum>)statusFilter as IEnumerable<Data.TaskStatus>
  2. IEnumerable<MyEnum> myEnum=(IEnumerable<Data.MyEnum>)statusFilter;
  3. IEnumerable<MyEnum> myEnum = statusFilter;
  4. IEnumerable<MyEnum> myEnum = statusFilter as IEnumerable<Data.MyEnum>;
  5. IEnumerable<MyEnum> myEnum = statusFilter.Cast<Data.MyEnum>()

В решениях № 1 и № 2 я сталкиваюсь с ошибкой:

System.InvalidCastException: 'Невозможно привести объект к введите 'System.Collections.Generi c .List`1 [System.String]', чтобы ввести 'System.Collections.Generi c .IEnumerable`1

Что касается решения № 4:

IEnumerable<MyEnum> myEnum устанавливается только на null.

Что касается решения № 5:

'Невозможно привести объект типа' System.String ' набрать Data.MyEnum '

Я не могу преобразовать свой список в тип MyEnum, так как он будет содержать несколько значений для передачи в мою базу данных, поэтому я сделал его строкой. Кроме того, для получения числового значения c перечисления почему форматируется в ToString("d").

...