如何使用 LINQ / C# 将对象的嵌套列表作为列表返回,其中每个项目都链接到相关的原始对象

问题描述 投票:0回答:2

我有一个对象 A 的列表,该列表中的一个属性是对象 B 的列表。

例如:

public class ObjectA
{
    public int Id { get; set; }
    public List<ObjectB> ObjectBs { get; set; }
}

public class ObjectB
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int ObjectAId { get; set; }
    public ObjectA ObjectA { get; set; }
}

如果我有一个

List<ObjectA>
并且每个ObjectA都包含自己的ObjectB列表,无论如何我都可以进行排序,以便我返回ObjectA中所有ObjectB的列表,每个ObjectA都有自己的基于ObjectB链接的ObjectA对象作为 Id?

希望这是有道理的!

c# linq
2个回答
0
投票

如果您想要 a/b 的单个列表作为结果:

List<ObjectA> As = ...

var result = As
            .SelectMany(a => 
                a.ObjectBs.Select(b =>
                new { b = b, a = a }))
            .ToList();

0
投票
objectAList.SelectMany(
    a => a.ObjectBs,
    (a,b) => new { Parent = a, Child = b});

应该为您提供一系列具有

Parent
Child
属性的对象序列,分别引用
ObjectA
ObjectB

© www.soinside.com 2019 - 2024. All rights reserved.