简单的linq需要

时间:2012-04-30 18:23:06

标签: c# linq

我有一个类型为链接的Linq对象数组,其中包含以下值:

new Link {SourceId = 1, TargetId=22223}
new Link {SourceId = 1, TargetId=2221223}
new Link {SourceId = 1, TargetId=222}
new Link {SourceId = 2, TargetId=26556}
new Link {SourceId = 2, TargetId=264}
new Link {SourceId = 2, TargetId=262}
new Link {SourceId = 2, TargetId=29}

class Link
{
    public int SourceId { get; set; }
    public int TargetId { get; set; }
}

我需要一个LINQ语句来输出包含以下内容的字典Dictionary<int, List<int>>

与该关键字相关联的SourceId密钥和TargetId列表作为值。

非常感谢。

2 个答案:

答案 0 :(得分:7)

var dic = links.GroupBy(x=>x.SourceID)
               .ToDictionary(x=> x.Key, x => x.Select(y=>y.TargetId).ToList());

答案 1 :(得分:0)

Dictionary<int, int> dict = links.ToDictionary(item => 
                                               item.SourceId ,
                                               item => item.TargetId)