title: LINQ - SelectMany from multiple properties in same object
body: <p>Assume you have the following simple objects:</p>
  
  <pre><code> class Order
  {
      public Customer[] Customers { get; set; }
  }
  
  class Customer
  {
      public SaleLine[] SaleLines { get; set; }
  }
  
  class SaleLine
  {
      public Tax[] MerchTax { get; set; }
      public Tax[] ShipTax { get; set; }
  }
  
  class Tax
  {
      public decimal Rate { get; set; }
      public decimal Total { get; set; }
  }
  </code></pre>
  
  <p>With these objects, I want to be able to get a list of all the unique tax rates used on the entire order, including both merchandise and shipping tax rates.</p>
  
  <p>The following LINQ query will get me the list I need, but only for merchandise taxes:</p>
  
  <pre><code>            var TaxRates = MyOrder.Customers
              .SelectMany(customer =&gt; customer.SaleLines)
              .SelectMany(saleline =&gt; saleline.MerchTax)
              .GroupBy(tax =&gt; tax.Rate)
              .Select(tax =&gt; tax.First().Rate
  </code></pre>
  
  <p>How can I get a list that contains list of unique tax rates that contains both merchandise and shipping rates?</p>