我的字典定义如下:
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帮助。
答案 0 :(得分: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>>
}