我想将一个对象列表转换为字典,其中键是对象中的一个字段,值是匹配该键的不同字段在对象中的列表。目前我可以通过循环来实现这一点,但我觉得应该能够用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>>
。
欢迎任何帮助。