title: Group/Sort output of a Join LINQ query based on multiple columns
body: <p>I'm trying to output results of a LINQ query in groups. All list items are strings. The string to join the two lists on is AssociatedCase. The two lists are:</p>
  
  <ol>
  <li><code>InternalIssue</code> - <code>{Id, Key, ReadMe, AssociatedCase}</code><br></li>
  </ol>
  
  <pre><code>{"44", "INT-44", "this is the read me for 44", "1234"}
  {"54", "INT-54", "this is the read me for 54", "1234"}
  {"54", "INT-54", "this is the read me for 54", "5678"}
  {"55", "INT-55", null, "9999"}
  </code></pre>
  
  <ol start="2">
  <li><code>ExternalCase</code> - <code>{CaseName, Account, Contact, AssociatedCase}</code><br></li>
  </ol>
  
  <pre><code>{"EXC-222", "1234", "Nike", "Nancy"}
  {"EXC-111", "5678", "Reebok", "Amber"}
  {"EXC-000", "9999", "Puma", "Susan"}
  </code></pre>
  
  <p>I've tried suggestions from similar posts but am unable to make it work - usually some of the list items become inaccessible when I start trying to group and join the lists together.</p>
  
  <pre><code>var query = issueList.Join(caseList,
  i =&gt; i.AssociatedCase,
  c =&gt; c.AssociatedCase,
  (i, c) =&gt; new
  {
  i.Key,
  i.ReadMe,
  c.CaseName,
  c.Account,
  c.Contact
  });
  
  foreach (var issue in query)
  {
  Console.WriteLine($"{issue.Key} - {issue.ReadMe}\n" +
  $"\t{issue.CaseName} - {issue.Account}, {issue.Contact}");
  }
  </code></pre>
  
  <p>This is what I want:<br></p>
  
  <pre><code>(INT-44) - this is the read me for 44
     (EXC-222) - Nike, Nancy
  (INT-54) - this is the read me for 54
     (EXC-111) - Reebok, Amber
     (EXC-222) - Nike, Nancy
  (INT-55) -
     (EXC-000) - Puma, Susan
  </code></pre>
  
  <p>... but this is what I get:<br></p>
  
  <pre><code>(INT-44) - this is the read me for 44
     (EXC-222) - Nike, Nancy
  (INT-54) - this is the read me for 54
     (EXC-222) - Nike, Nancy
  (INT-54) - this is the read me for 54
     (EXC-111) - Reebok, Amber
  (INT-55) -
     (EXC-000) - Puma, Susan
  </code></pre>