1

我有一个定义如下的字典:

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)
{

}

请帮忙。

4

1 回答 1

1

尝试这个:

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

并像访问它一样

foreach(var item in dict)

顺便说一句,没有类型var。这只是编译器确定变量类型的指令,但它是强类型的。在你的情况下,我认为,它会是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>>
}
于 2013-09-21T15:31:19.313 回答