2013-09-21 242 views
1

我有一個字典定義爲VAR到字典中並獲得VAR轉換如下:如何使用foreach循環

Dictionary<string, int> Controls = new Dictionary<string, int>(); 

使用下面的代碼我把它們具有類似的價值爲VAR鍵

var result = (from p in Controls 
         group p by p.Value into g 
         where g.Count() > 1 
         select g); 

但我既不能將'結果'再次轉換成字典,也不能將結果'內'的項目訪問

我試過這個代碼,但

foreach (System.Linq.Lookup<int, KeyValuePair<string, int>> Item in result) 
{ 

} 

Plz help。

回答

1

試試這個:

var dict = result.ToDictionary(x => x.Key, x => x.Select(y => y.Key).ToList()) 

和訪問它像

foreach(var item in dict) 

順便說一句,有沒有類型var。編譯器確定變量的類型只是instruction,但它是強類型的。在你的情況下,我認爲,這將是IEnumerable<IGrouping<TKey, TSource>>。其實你也可以這樣訪問result

foreach(var item in result) 
{ 
    // item is type Lookup<int, KeyValuePair<string, int>>.Grouping 
    // you can go through item like 
    foreach(var i in item) 
    { 

    } 

    // or convert it ToList() 
    var l = item.ToList() 
    // l is type List<KeyValuePair<string, int>> 
} 
+0

感謝您對我的回覆。如果你能提供幫助,還有一件事。如何使用'foreach'循環訪問'tempdic'Dictionary > tempdic = result.ToDictionary(x => x.Key,x => x.Select(y => y.Key).ToList()) ; – ravi

+0

@ravi更新了 –

+0

感謝您的解釋.. – ravi