2012-04-30 79 views
4

我有類型鏈接包含值以下的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的列表作爲值。

非常感謝。

+0

你確定這有什麼關係LINQ? – MarioDS

+2

@MarioDeSchaepmeester - 你確定它是作業嗎? –

+0

@HenkHolterman編輯之前仍然存在的句子看起來非常複製於家庭作業。 – MarioDS

回答

7
var dic = links.GroupBy(x=>x.SourceID) 
       .ToDictionary(x=> x.Key, x => x.Select(y=>y.TargetId).ToList()); 
0
Dictionary<int, int> dict = links.ToDictionary(item => 
               item.SourceId , 
               item => item.TargetId) 
+0

這不是OP想要的。 –

+2

當您嘗試將重複的鍵插入字典時,這可能會失敗,不是嗎?缺少GroupBy? – MilkyWayJoe

+0

對於每個鍵有多個項目,ToDictionary將不起作用,但ToLookup會起作用(儘管它不會返回字典列表) –