fork download
  1. using System;
  2. using System.Linq;
  3. using System.Collections.Generic;
  4.  
  5. public class Test
  6. {
  7. public class MyThing
  8. {
  9. public int name { get; set; }
  10. public string myNumber { get; set; }
  11. }
  12.  
  13. public static void Main()
  14. {
  15. var list = new List<MyThing>() {
  16. new MyThing{myNumber="12-22"},new MyThing{myNumber="13-01"},new MyThing{myNumber="12-030"}
  17. };
  18.  
  19. var orderedLikeVersion = list
  20. .Select(t => new
  21. {
  22. Thing = t,
  23. Parts = t.myNumber.Split('-')
  24. }).Select(x => new
  25. {
  26. x.Thing,
  27. Version = new Version(int.Parse(x.Parts[0]), int.Parse(x.Parts[1]))
  28. })
  29. .OrderByDescending(x => x.Version)
  30. .Select(x => x.Thing);
  31.  
  32. foreach(var thing in orderedLikeVersion)
  33. Console.WriteLine(thing.myNumber);
  34. }
  35. }
Success #stdin #stdout 0.04s 34064KB
stdin
Standard input is empty
stdout
13-01
12-030
12-22