title: .NET list sort returns different order after all returns of 0
body: <p>The initial list that goes in on this, comes out a different order, even when return of 0 is applied.  I thought a return of 0 keeps the games in the same order as it was being processed initially but this doesnt seem to be the case.  If none of the other returns are hit, shouldnt the order stay the same as the origional array?</p>
  
  <pre><code>games.Sort((game1, game2) =&gt;
              {
                  DateTime? minMaxDate1 = null;
                  DateTime? minMaxDate2 = null;
  
                  minMaxDate1 = FindDateRestriction(autoSchedulerLists, game1.AwayTeam, minMaxDate1);
                  minMaxDate1 = FindDateRestriction(autoSchedulerLists, game1.HomeTeam, minMaxDate1);
  
                  minMaxDate2 = FindDateRestriction(autoSchedulerLists, game2.AwayTeam, minMaxDate2);
                  minMaxDate2 = FindDateRestriction(autoSchedulerLists, game2.HomeTeam, minMaxDate2);
  
                  if (minMaxDate1.HasValue &amp;&amp; !minMaxDate2.HasValue)
                      return -1;
  
                  if (minMaxDate2.HasValue &amp;&amp; !minMaxDate1.HasValue)
                      return -1;
  
                  if (minMaxDate1.HasValue &amp;&amp; minMaxDate2.HasValue &amp;&amp; minMaxDate1 != minMaxDate2)
                  {
                      return minMaxDate1 &lt; minMaxDate2 ? -1 : 1;
                  }
  
                  return 0;
              });
  </code></pre>