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

Linq按商品品牌分组查询时如何在select new中生成买家姓名列表

解决方法

完整查询代码

var query= from p in purchaseRepo.ReadAll()
                  join g in guitarRepo.ReadAll() on p.GuitarId equals g.Id
                  join b in brandRepo.ReadAll() on g.BrandId equals b.Id
                  group p by b into grp
                  select new
                  {
                      BrandId = grp.Key.Id,
                      BrandName = grp.Key.Name,
                      Buyers = grp.Select(t => t.BuyerName).ToList()
                  };

关键调整说明

  • 修正了之前误用SelectMany的问题:SelectMany作用是扁平化嵌套集合,传入字符串类型的BuyerName会被拆解为字符序列,不符合需求,替换为Select直接提取买家姓名字段即可。
  • 不需要提前初始化空的List<string>,直接对Select返回的姓名序列调用ToList()方法,就能直接生成List<string>类型的买家列表赋值给Buyers属性。
  • 如果需要去除同一品牌下重复的买家姓名,可在Select后追加Distinct()方法:grp.Select(t => t.BuyerName).Distinct().ToList()。

内容的提问来源于stack exchange,提问作者bence győgyei

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:15:04