Выбор подмножества emums с использованием Linq (для связывания с ComboBox - PullRequest
1 голос
/ 04 ноября 2010

У меня есть enum

public enum Positions : byte
{
  Manager = 0,
  CEO = 1, 
  Lawyer =2,
  Intern =3,
  Janitor = 4,
}

Можно ли получить подмножество этих эмуляторов для связывания с ComboBox в WPF?Скажите только те значения перечисления <= 2 и> = 0?Я пытался:

var subset = from p in Positions where p <= 2 && p >= 0 select p; 
myComboBox.ItemsSource = subset;

без успеха (Позиции помечены как ошибка с «Не удалось найти реализацию шаблона запроса ...»)

Я думал, что это будетприятно использовать LINQ, но если есть еще один простой способ, это тоже будет интересно.Спасибо, Дейв

Ответы [ 2 ]

3 голосов
/ 04 ноября 2010

Вам нужно будет получить значения перечисления и привести его к правильному типу:

var subset = from p in Enum.GetValues(typeof(Positions)).Cast<int>()
             where p <= 2 && p >= 0 select (Positions)p;
0 голосов
/ 11 апреля 2018

Последний бросок не нужен.

var subset = from p in Enum.GetValues(typeof(Positions)).Cast<Positions>() where p <= Postions.Lawyer && p >= Positions.Manager select p;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...