Seven. Годы. Позже.
Я знаю, что это было давно, но мне нужен был самый простой ответ, и на данный момент (с .NET 4.5.1) я нашел следующее, чтобы быть самым простым ответом, который я мог получить:
IEnumerable<long> allIds = waitingFiles.Values.Select(wf => wf.groupId).Distinct();
Моя ситуация такова, что у меня есть ConcurrentDictionary, который выглядит примерно так:
ConcurrentDictionary<long, FileModel>
Свойство ConcurrentDictionary Values в основном является моим List<FileModel>
.
* FileModel имеет идентификатор группы, который не обязательно уникален (хотя, очевидно, ключ (длинный), который я использую для добавления объекта FileModel в словарь, уникален для FileModel).
* Назван для наглядности в примере.
Дело в том, что у меня есть большое количество FileModels (представьте 100) в ConcurrentDictionary, и в этих 100 FileModels есть 5 разных groupIds.
На данный момент мне просто нужен список различных идентификаторов группы.
Итак, еще раз, если бы у меня был только список FileModel, код выглядел бы следующим образом:
IEnumerable <long> allIds = allFileModel.Select(fm => fm.groupId).Distinct();