title: Elegant sorting algorithm which is considering multiple properties of a class
body: <p>Imagine having list of objects with three DateTime properties (Date1, Date2 and Date3) containing the following data:</p>
  
  <ul>
  <li>Object1: Date1 (5 July 2019), Date2 (2 July 2019), Date3 (4 July 2019)</li>
  <li>Object2: Date1 (3 July 2019), Date2 (8 July 2019), Date3 (9 July 2019)</li>
  <li>Object3: Date1 (8 July 2019), Date2 (8 July 2019), Date3 (1 July 2019)</li>
  </ul>
  
  <p>As a result for an ascending sort I expect this order: <strong>Object3 > Object1 > Object2</strong> because Date3 of Object3 has the smallest date of all.</p>
  
  <p>I tried to use some fancy Linq methods (<code>OrderBy()</code> with <code>ThenBy()</code>) but they didn't do what I wanted to achieve.</p>