title: vb.net - List (Of String) Sorting, Numbers Ascending, Alphabet Descending
body: <p>I am trying to sort a list of string into a very particular order. I have a list of items which come in the format of "X123XXX" where X can be a letter, and the 123 can be any number.</p>
  
  <pre><code>Dim AList As New List(Of String)
  AList.Add("B200")
  AList.Add("A100X")
  AList.Add("A100XY")
  AList.Add("A100XYZ")
  
  AList.Sort()
  
  'Actual Return in order (AList(1).tostring etc.)
  'A100X
  'A100XY
  'A100XYZ
  'B200
  
  'Desired Return
  'A100XYZ
  'A100XY
  'A100X
  'B200
  </code></pre>
  
  <p>The problem I have is that Not only do I need to sort the Numbers Ascending and Letters Descending, but I also need to sort the first letter Ascending.</p>
  
  <p>I was hoping that, as the parts are always in the same format (letter + 3 numbers + Optional up to 3 letters) - that I could just select the first 4 and sort that ASC and then DESC on the last 3. But i have no idea how to do that in vb.net. I've had a look around, and can only find the IComparable stuff, which doesn't seem like it would be very useful.</p>