You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用LINQ合并同公司Admin用户的邮箱为单条记录?

用LINQ实现需求的方案

完全可以用LINQ实现你要的功能,核心思路是先筛选、再分组、最后拼接投影,具体代码如下:

var adminUsersByCompany = bUsers
    // 第一步:只保留UserPersonas包含"Admin"的用户
    .Where(user => user.UserPersonas.Contains("Admin"))
    // 第二步:按公司名称分组(替换你原来的组合分组键)
    .GroupBy(user => user.CompanyName)
    // 第三步:投影成需要的结构,拼接同一公司的邮箱
    .Select(group => new 
    {
        CompanyName = group.Key,
        UserEmails = string.Join(";", group.Select(user => user.UserEmail))
    })
    .ToList();

补充说明:

  • 如果同一公司存在重复的邮箱记录,可以在筛选后加一步去重,避免拼接重复邮箱:
    var adminUsersByCompany = bUsers
        .Where(user => user.UserPersonas.Contains("Admin"))
        // 去重同一公司下的重复邮箱
        .DistinctBy(user => new { user.CompanyName, user.UserEmail })
        .GroupBy(user => user.CompanyName)
        .Select(group => new 
        {
            CompanyName = group.Key,
            UserEmails = string.Join(";", group.Select(user => user.UserEmail))
        })
        .ToList();
    
  • 你原来的代码是按CompanyName + UserEmail组合分组,这和需求不符,所以要把分组键改成单独的CompanyName。

内容的提问来源于stack exchange,提问作者Michael Tucker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 10:20:31