code_junkie

Is there a linq-y way to union collection properties of a collection of objects?

Nov 11th, 2011
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. public IEnumerable<Child> GetAllChildren(IEnumerable<Parent> parents){
  2.  
  3. var result = new List<Child>();
  4.  
  5. foreach(Parent parent in parents)
  6. foreach(Child child in parent.Children)
  7. result.Add(child);
  8.  
  9. return result;
  10. }
  11.  
  12. public IEnumerable<Child> GetAllChildren(IEnumerable<Grandparent> nanas){
  13.  
  14. var result = new List<Child>();
  15.  
  16. foreach(Grandparent papa in nanas)
  17. foreach(Parent parent in papa.Children)
  18. foreach(Child child in parent.Children)
  19. result.Add(child);
  20.  
  21. return result;
  22. }
  23.  
  24. return parents
  25. .SelectMany(p => p.Children);
  26.  
  27. return oldies
  28. .SelectMany(grand => grand.Children)
  29. .SelectMany(parent => parent.Children);
  30.  
  31. public IEnumerable<Child> GetAllChildren(IEnumerable<Parent> parents)
  32. {
  33. return from parent in parents
  34. from child in parent.Children
  35. select child;
  36. }
  37.  
  38. public IEnumerable<Child> GetAllChildren(IEnumerable<Grandparent> nanas)
  39. {
  40. return from papa in nanas
  41. from parent in papa.Children
  42. from child in parent.Children
  43. select child;
  44. }
  45.  
  46. return (from .....
  47. ...
  48. select child).ToList();
Add Comment
Please, Sign In to add comment