c# - Linq 查询合并列表中的不同项目

标签 c# linq

<分区>

我有以下模型:

public class Result
{
    public int Id { get; set; }
    public string Company { get; set; }        
}

我有一个包含类似于以下数据的列表:

Id        Company
=================
21        Microsoft
22        Apple
22        IBM
23        Microsoft

如何使用 Linq 为我提供不同的 ID,将公司列与分隔符连接起来?

我的输出应该是:

Id        Company
=================
21        Microsoft
22        Apple, IBM
23        Microsoft

最佳答案

您可以使用 GroupByString.Join:

IEnumerable<Result> query = results.GroupBy(r => r.Id)
    .Select(g => new Result
    { 
        Id = g.Key, 
        Company = String.Join(", ", g.Select(r => r.Company)) 
    });

关于c# - Linq 查询合并列表中的不同项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29797806/

相关文章:

c# - 对列表项使用标签帮助器验证

c# - Linq 避免两次调用函数

c# - HashSet 上的 LINQ 的 ForEach?

c# - Linq - 使用谓词的查询运算符 'Where' 不支持重载

c# - 非静态字段、方法或属性需要 Automapper 对象引用

c# - 以前主要是 Java 开发人员的 C# 应该使用什么工具?

c# - 如何将字符串的换行符更改为空格字符

c# - 需要一个 linq to objects 查询嵌套集合

c# - 没有任何html标签的元素的节点名称是什么?

c# - C# 中的多个串行端口/使用列表 <> 时出现问题