Linq 查询使用列表选择新的
Posted
技术标签:
【中文标题】Linq 查询使用列表选择新的【英文标题】:Linq query select new with List 【发布时间】:2021-12-30 23:15:48 【问题描述】:我正在做一个查询,它会返回按购买的产品品牌分组的买家姓名。到目前为止,我在这里
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 new 它看起来像这样:
select new
Brand=grp.Key,
Buyers=new List<string>()
;
现在我只需要知道如何将买家名称添加到列表中。 结果应该是这样的: Brand1 --->买家名单
【问题讨论】:
【参考方案1】:选择一个:
Linq 提供.ToList() 方法 Linq 提供.ToArray() 方法 成为英雄并实现您自己的方法,该方法接受一个 IEnumerable【讨论】:
【参考方案2】:我已经成功了,谢谢大家的帮助!
这是我对其他苦苦挣扎的人的询问:
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()
));
【讨论】:
请将自我回答作为对问题的编辑发布,而不是单独发布。以上是关于Linq 查询使用列表选择新的的主要内容,如果未能解决你的问题,请参考以下文章