【问题标题】:List of objects with duplicate keys combine field into comma list具有重复键的对象列表将字段组合到逗号列表中
【发布时间】:2020-11-29 09:41:14
【问题描述】:

我有一个 Linq To SQL 结果,它是一个代表人员的对象列表。如果工作人员在多个地点注册,则存在重复的工作人员记录。在有多个员工记录的情况下,我需要在“位置”中用逗号分隔这些位置,以便我现在拥有一个员工记录。 这是选择语句:

staff = query...
select new UserModel
{
   sourceId= stf.STAFF_GU,
   location = loc.LOCATION_GU.ToString(),
   userName = user.LOGIN_NAME,
   email = person.EMAIL
}).ToList();

我不知道如何获得每个用户有一行的最终列表,并且位置是该用户位置的逗号列表。

我从 article 尝试了 JonSkeet 的解决方案,但我不知道如何将位置组转换为字符串列表。

var merged = staff.GroupBy(x => x.sourceId)
                 .Select(g => new UserModel
                 {
                     sourceId = g.Key,
                     userName = g.First().userName,
                     location = g.**DO_WHAT_TO_COMBINE_LOCATIONS**(x => x.location),
                     email = g.First().email
                 });

【问题讨论】:

    标签: c# linq group-by


    【解决方案1】:

    你可以使用string.Join() 方法大概喜欢

    location = string.Join(",",g.Select(x => x.location))
    

    【讨论】:

    • 天哪。谢谢你。
    猜你喜欢
    • 2021-12-20
    • 2021-03-24
    • 2022-10-30
    • 2022-10-15
    • 2015-04-03
    • 2017-05-07
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多