Linq查询返回父子的flatened列表

对于linq的世界来说还是新手,我需要一些帮助,将有孩子的父母列表整理成一个ParentChild列表。

像这样:

class Program { static void Main() { List parents = new List(); parents.Add(new Parent { Name = "Parent1", Children = new List { new Child { Name = "Child1" }, new Child { Name = "Child2" } } }); parents.Add(new Parent { Name = "Parent2", Children = new List { new Child { Name = "Child3" }, new Child { Name = "Child4" } } }); // linq query to return List parentChildList; // ParentName = Parent1, ChildName = Child1 // ParentName = Parent1, ChildName = Child2 // ParentName = Parent2, ChildName = Child3 // ParentName = Parent2, ChildName = Child4 } internal class ParentChild { public string ParentName { get; set; } public string ChildName { get; set; } } internal class Parent { public string Name { get; set; } public List Children { get; set; } } internal class Child { public string Name { get; set; } } } 

非常感谢,克里斯

 from parent in parents from child in parent.Children select new ParentChild() { ParentName = parent.Name, ChildName = child.Name }; 

这应该为你做:

 var k = from p in parents from c in p.Children select new {Name = p.Name, Child = c.Name }; 

编辑:Opps忘记返回一个新的ParentChild对象。 但肯特打败了我;)