У меня есть List<Employee> employees
который содержит имущество CategoryID
. Я хочу извлечь эти категории в List<int> employeeCategories
.Как получить список недвумерных значений из одного объекта недвижимости
Я попробовал это, но я получаю дубликаты категории:
List<int> employeeCategories = employees.Select(x => x.CategoryID).ToList();
Я хочу, чтобы все эти категории, но не дублировать.
Я пытался сделать это:
List<int> employeeCategories = employees.GroupBy(x => x.CategoryID).Select(x => x.First()).Select(x => x.CategoryID).ToList();
Есть более простые и экологически чистые способы для достижения этой цели? Правильно ли я использую метод GroupBy
?
Заранее спасибо.
Честно говоря, я так и делаю это. Использование расширения LINQ Distinct() часто не работает так, как я этого хочу. – maccettura
Вы можете упростить это для GroupBy (x => x.CategoryID). Выберите (g => g.Key) .ToList(); '. Результатом «GroupBy» является «IGrouping», где каждый элемент имеет «ключ», который является уникальным значением того, что вы группировали. – juharr
@juharr Интересно. Спасибо. –