MagusZero

Why Select and SelectMany are important

Oct 15th, 2013
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.67 KB | None | 0 0
  1. #region Terrible Object
  2.                
  3.                 var item = new
  4.                 {
  5.                     Items =
  6.                         new[]
  7.                         {
  8.                             new
  9.                             {
  10.                                 Items =
  11.                                     new[]
  12.                                     {
  13.                                         new
  14.                                         {
  15.                                             Items =
  16.                                                 new[]
  17.                                                 {
  18.                                                     new
  19.                                                     {
  20.                                                         Name = "Test"
  21.                                                     },
  22.                                                     new
  23.                                                     {
  24.                                                         Name = "Test"
  25.                                                     },
  26.                                                     new
  27.                                                     {
  28.                                                         Name = "Test"
  29.                                                     }
  30.                                                 }
  31.                                         },
  32.                                         new
  33.                                         {
  34.                                             Items =
  35.                                                 new[]
  36.                                                 {
  37.                                                     new
  38.                                                     {
  39.                                                         Name = "Test"
  40.                                                     },
  41.                                                     new
  42.                                                     {
  43.                                                         Name = "Test"
  44.                                                     },
  45.                                                     new
  46.                                                     {
  47.                                                         Name = "Test"
  48.                                                     }
  49.                                                 }
  50.                                         },
  51.                                         new
  52.                                         {
  53.                                             Items =
  54.                                                 new[]
  55.                                                 {
  56.                                                     new
  57.                                                     {
  58.                                                         Name = "Test"
  59.                                                     },
  60.                                                     new
  61.                                                     {
  62.                                                         Name = "Test"
  63.                                                     },
  64.                                                     new
  65.                                                     {
  66.                                                         Name = "Test"
  67.                                                     }
  68.                                                 }
  69.                                         }
  70.                                     }
  71.                             },
  72.                             new
  73.                             {
  74.                                 Items =
  75.                                     new[]
  76.                                     {
  77.                                         new
  78.                                         {
  79.                                             Items =
  80.                                                 new[]
  81.                                                 {
  82.                                                     new
  83.                                                     {
  84.                                                         Name = "Test"
  85.                                                     },
  86.                                                     new
  87.                                                     {
  88.                                                         Name = "Test"
  89.                                                     },
  90.                                                     new
  91.                                                     {
  92.                                                         Name = "Test"
  93.                                                     }
  94.                                                 }
  95.                                         },
  96.                                         new
  97.                                         {
  98.                                             Items =
  99.                                                 new[]
  100.                                                 {
  101.                                                     new
  102.                                                     {
  103.                                                         Name = "Test"
  104.                                                     },
  105.                                                     new
  106.                                                     {
  107.                                                         Name = "Test"
  108.                                                     },
  109.                                                     new
  110.                                                     {
  111.                                                         Name = "Test"
  112.                                                     }
  113.                                                 }
  114.                                         },
  115.                                         new
  116.                                         {
  117.                                             Items =
  118.                                                 new[]
  119.                                                 {
  120.                                                     new
  121.                                                     {
  122.                                                         Name = "Test"
  123.                                                     },
  124.                                                     new
  125.                                                     {
  126.                                                         Name = "Test"
  127.                                                     },
  128.                                                     new
  129.                                                     {
  130.                                                         Name = "Test"
  131.                                                     }
  132.                                                 }
  133.                                         }
  134.                                     }
  135.                             },
  136.                             new
  137.                             {
  138.                                 Items =
  139.                                     new[]
  140.                                     {
  141.                                         new
  142.                                         {
  143.                                             Items =
  144.                                                 new[]
  145.                                                 {
  146.                                                     new
  147.                                                     {
  148.                                                         Name = "Test"
  149.                                                     },
  150.                                                     new
  151.                                                     {
  152.                                                         Name = "Test"
  153.                                                     },
  154.                                                     new
  155.                                                     {
  156.                                                         Name = "Test"
  157.                                                     }
  158.                                                 }
  159.                                         },
  160.                                         new
  161.                                         {
  162.                                             Items =
  163.                                                 new[]
  164.                                                 {
  165.                                                     new
  166.                                                     {
  167.                                                         Name = "Test"
  168.                                                     },
  169.                                                     new
  170.                                                     {
  171.                                                         Name = "Test"
  172.                                                     },
  173.                                                     new
  174.                                                     {
  175.                                                         Name = "Test"
  176.                                                     }
  177.                                                 }
  178.                                         },
  179.                                         new
  180.                                         {
  181.                                             Items =
  182.                                                 new[]
  183.                                                 {
  184.                                                     new
  185.                                                     {
  186.                                                         Name = "Test"
  187.                                                     },
  188.                                                     new
  189.                                                     {
  190.                                                         Name = "Test"
  191.                                                     },
  192.                                                     new
  193.                                                     {
  194.                                                         Name = "Test"
  195.                                                     }
  196.                                                 }
  197.                                         }
  198.                                     }
  199.                             }
  200.                         }
  201.                 };
  202.  
  203.                 #endregion Terrible Object
  204.  
  205.                 // This would otherwise be a triple nested for loop.
  206.                 var names = item.Items.SelectMany(x => x.Items.Select(y => y.Items.Select(z => z.Name)));
  207.                 Assert.AreEqual(9, names.Count());
Advertisement
Add Comment
Please, Sign In to add comment