c# – 使用linq获取分组的逗号分隔值

我想第三列“项目”与分组的值.
Dictionary<string,int> dic = new Dictionary<string,int>();
dic.Add("a",1);
dic.Add("b",1);
dic.Add("c",2);
dic.Add("d",3);

var dCounts =
    (from i in dic
    group i by i.Value into g
    select new { g.Key,count = g.Count()});

    var a = dCounts.Where(c => c.count>1 );

dCounts.Dump();
a.Dump();

代码导致:

Key Count
1   2
2   1
3   1

我想要这些结果:

Key Count Items
1   2     a,b
2   1     c
3   1     d

解决方法

var dCounts =
        (from i in dic
            group i by i.Value into g
            select new { g.Key,count = g.Count(),Items = string.Join(",",g.Select(kvp => kvp.Key)) });

使用string.Join(“,”,{array}),传入您的数组键.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...