Преобразовать List в Dictionary >

Я хотел бы взять список объектов и преобразовать его в словарь, где ключ - это поле в объекте, а значение - это список другого поля в объектах, которые соответствуют ключ. Я могу сделать это сейчас с помощью цикла, но я считаю, что это можно сделать с помощью 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 > .

Любая помощь будет принята с благодарностью.

26
задан Marcus 30 September 2011 в 18:50
поделиться