Search code examples
c#linqgeneric-collections

What's the best way to compile a list of all Parent objects of a list of child objects?


Suppose I have a child and parent class like this:

public Parent
{
    public ID {get; set;}
    public Name {get; set;}
    public ICollection<Child> Children {get; set;}
}

public Child
{
    public ID {get; set;}
    public Name {get; set;}
    public ICollection<Parent> Parents {get; set;}
}

What is the best way (using linq or otherwise) to compile a list of all the Parents or all the Children of a ICollection<Child> or a List<Child>?


Solution

  • I interpeted this as a way to get all the parents of a given list of children.

    IEnumerable<Parent> parents = childList.SelectMany(c => c.Parents).Distinct();