Linq查询 - 列表中的列表

时间:2017-07-29 21:01:10

标签: c# linq

我尝试选择包含Fund.NameList<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 个答案:

答案 0 :(得分:1)

尝试使用GroupJoin。

var query = funds.GroupJoin(investments, f => f.Id, i => i.Fund.Id, (f, result) => new { f.Name, result });