title: C# GroupBy - Creating multiple grouping levels
body: <p>Given the following class:</p>
  
  <pre><code>public class Transaction
  {
      public string Category { get; set; }
      public string Form { get; set; }
  }
  </code></pre>
  
  <p>How do I get a grouping of transactions that are grouped by both the <code>Category</code> and the <code>Form</code>?</p>
  
  <p>Basically I want it to output like so:</p>
  
  <pre><code>Category 1
      Form 1
          Transaction1
          Transaction2
          Transaction3
          ...
      Form 2
          Transaction1
          Transaction2
          Transaction3
          ...
  Category 2
      Form 1
          Transaction1
          Transaction2
          Transaction3
          ...
      Form 2
          Transaction1
          Transaction2
          Transaction3
          ...
  </code></pre>