【发布时间】:2012-05-03 17:52:45
【问题描述】:
我有一个如下所示的字符串列表:
abc|key1|486997
def|key1|488979
ghi|key2|998788
gkl|key2|998778
olz|key1|045669
我如何使用 LINQ 和 ToDictionary 生成一个看起来像的Dictionary<string, List<string>>
key1 : { abc|key1|486997, def|key1|488979, olz|key1|045669 }
key2 : { ghi|key2|998788, gkl|key2|998778 }
基本上我希望能够提取第二个元素作为键,使用 ToDictionary() 一次性创建字典。
我目前正在这样做..
var d = new Dictionary<string, List<string>>();
foreach(var l in values)
{
var b = l.Split('|');
var k = b.ElementAtOrDefault(1);
if (!d.ContainsKey(k))
d.Add(k, new List<string>());
d[k].Add(l);
}
我已经看到有关从单个分隔值字符串构建字典的问题,但我 想知道从分隔字符串列表开始时是否有一种优雅的方式来做到这一点。
【问题讨论】:
标签: c# linq dictionary