Я хотел бы взять список объектов и преобразовать их в словарь, где ключ является полем в объекте, а значение представляет собой список другого поля в объектах, которые соответствуют ключу. Я могу сделать это сейчас с помощью цикла, но я считаю, что это должно быть выполнено с помощью linq и не нужно писать цикл. Я думал о комбинации GroupBy
и ToDictionary
, но пока не увенчался успехом.
Вот как я делаю это прямо сейчас:
var samplesWithSpecificResult = new Dictionary<string, List<int>>();
foreach(var sample in sampleList)
{
List<int> sampleIDs = null;
if (samplesWithSpecificResult.TryGetValue(sample.ResultString, out sampleIDs))
{
sampleIDs.Add(sample.ID);
continue;
}
sampleIDs = new List<int>();
sampleIDs.Add(sample.ID);
samplesWithSpecificResult.Add(sample.ResultString, sampleIDs);
}
Самый дальний я могу получить с .GroupBy().ToDictionay()
- Dictionary<sample.ResultString, List<sample>>
.
Любая помощь будет оценена.