繁体   English   中英

Linq 查询 select 新带列表

[英]Linq query select new with List

我正在做一个查询,它会返回按他们购买的产品品牌分组的买家姓名。 到目前为止我在这里

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.Id into grp
                  select new
                  {
                      grp.Key,
                      grp.SelectMany(t => t.BuyerName)
                  }

我的问题是我想在 select 新零件的主体中声明一个列表或一组买家名称,但我无法让它工作。 编辑:我给字段起的名字是 select new 它看起来像这样:

select new 
                  {
                     Brand=grp.Key,
                     Buyers=new List<string>()
                      
                  };

现在我只需要知道如何将买家姓名放入列表中。 结果应该是这样的: Brand1 --->List of Buyer names

选一个:

  • Linq 提供.ToList()方法
  • Linq 提供.ToArray()方法
  • 成为英雄并实现您自己的方法,该方法接受IEnumerable<string>并返回一个列表,其中填充了该可枚举的字符串元素...

我已经成功了,谢谢大家的帮助!

这是我对其他人的疑问:

 var asd = 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.Name into grp
                  select new
                  {
                      Brand = grp.Key,
                      Buyers = grp.Select(t=>t.BuyerName)

                  };
        var result = asd
            .Select(x => new KeyValuePair<string, List<string>>(
                x.Brand,
                x.Buyers.ToList()
                ));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM