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

标签 c# linq linq-to-objects grouping

我想要第三列“项目”,其中包含分组的值。

var 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}),传入您的键数组。

关于c# - 使用 linq 获取分组的逗号分隔值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3239552/

相关文章:

c# - 如何使用 LINQ 合并 2 个列表并添加新列表?

c# - List<List<>>.Contains() 不工作

c# - 在同一装配空间中动态生成模块

c# - 如何进行区分大小写的 LINQ 查询?

c# - 在 LINQ to objects 中,如果对象属性等于 "folder",如何将其设置为 null?

linq - 在 LINQ to 实体中何时使用 JOIN 以及何时不使用

c# - 在 wpf 数据网格中对所有行进行排序后触发哪个事件。

c# - 既然可以直接返回 Task<T>,为什么还要使用 async 并返回 await?

c# - 如何在 C# 中的泛型列表中搜索特定值?

c# - Linq-to-Sql:使用 LinqDataSource 以编程方式检索数据