2011-06-29 55 views
0

我有以下的解釋:Linq查詢與多個值相處重複鍵一次利用詞典

Dictionary<int, string> selectedDrivers = new Dictionary<int, string>() 
{ 
    { 1, "Michael Schumacher" }, 
    { 2, "Michael Schumacher" }, 
    { 3, "Jensen Button" } 
}; 

我試圖實現的是一個LINQ查詢,將發現的重複,檢索名稱只有一次,連同這個重複的位置。因此,例如,以上將導致"Michael Schumacher" 1 2。我想要結果進入Dictionary<string, List<int>>

快速興奮起來,我寫的這個小金塊似乎走向了正確的方向,只是我有兩次邁克爾舒馬赫。而且這還沒有在Dictionary<string, List<int>>

var a = selectedDrivers.GroupBy(a => a.Value). 
     Where(b => b.Count() > 1); 
+0

你不能這樣做,只有一個LINQ的要求,我認爲 –

回答

3
var a = selectedDrivers.GroupBy(a=>a.Value) 
      .Where(g=>g.Count() > 1) 
      .ToDictionary(g => g.Key, g => g.Select(a=>a.Key).ToList()); 
+0

哇。非常感謝! –