Использование расширения Linq в классе Array - PullRequest
7 голосов
/ 20 апреля 2011

Я пытаюсь построить SelectList из Enum.

Почему методы расширения Linq недоступны в Array?

var values = Enum.GetValues(typeof(MyEnum));
var test = values.Select(x => x); // compile error

НоЯ могу написать это таким образом, и он компилируется ...

var test = from Enum e in values select new { e };

Обычно я не использую этот стиль синтаксиса, поэтому я не очень знаком с ним, но вышеприведенный по сути не тоткак лямбда-запрос, который не компилируется?

1 Ответ

9 голосов
/ 20 апреля 2011

Используйте метод OfType , чтобы получить IEnumerable<T>, который можно запросить с помощью LINQ:

var values = Enum.GetValues(typeof(MyEnum));
var test = values.OfType<int>().Select(x => x);
...