title: Sorting a List of Strings numerically (1,2,...,9,10 instead of 1,10,2)
body: <p>I have a List like this:</p>
  
  <pre><code>var l = new List&lt;string&gt; {"bla 1.txt","bla 2.txt","bla 10.txt","bla 3.txt"};
  </code></pre>
  
  <p>If i call l.Sort(), the list gets sorted in the order 1,10,2,3 which makes sense from a pure string point of view, but sucks from a User Perspective.</p>
  
  <p>Since I don't want to/can't force my users to name them 01, 02, 03,... I wonder if there is either a built-in method or simple algorithm to detect and sort numbers properly, so that I have 1,2,3,10? Since the numbers are only 1 or 2 characters long (i.e., no more than 99) I could possibly do a regex that temporarily prefixes all 1-digit numbers with a 0 and sort, but before I reinvent the wheel I wonder if something already exists?</p>
  
  <p>.net 3.5SP1 if that matters, not 4.0</p>