Linq 查询 - 列表中的列表 [重复]
Posted
技术标签:
【中文标题】Linq 查询 - 列表中的列表 [重复]【英文标题】:Linq query - List within List [duplicate] 【发布时间】:2018-01-05 17:38:55 【问题描述】:我正在尝试选择一个包含Fund.Name
和List<Investment>
的列表。
var funds = new List<Fund>
new Fund Id = 1 , Name = "good" ,
new Fund Id = 2, Name = "bad"
;
var investments = new List<Investment>
new Investment Fund = funds[0], Value = 100 ,
new Investment Fund = funds[0], Value = 200 ,
new Investment Fund = funds[1], Value = 300
;
然后我尝试用这个来创建查询:
var query = from f in funds
join i in investments
on f.Id equals i.Fund.Id
select new f.Name, i ;
我想要这样的东西:
Name = good, Id = 1, Value = 100 , Id = 1, Value = 200 ,
Name = bad, Id = 2, Value = 300
但我得到的是这样的:
Name = good, Id = 1, Value = 100 ,
Name = good, Id = 1, Value = 200 ,
Name = bad, Id = 2, Value = 300
【问题讨论】:
【参考方案1】:尝试使用 GroupJoin。
var query = funds.GroupJoin(investments, f => f.Id, i => i.Fund.Id, (f, result) => new f.Name, result );
【讨论】:
以上是关于Linq 查询 - 列表中的列表 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在linq C#中使用group by并获取记录列表[重复]