Without using LINQ, you can use the List<T>.Sort() method to sort the version numbers in ascending or descending order. Here's an example of how you can do this:
var ver = new List<string>();
ver.Add("3.5");
ver.Add("3.15");
ver.Add("3.10");
ver.Add("3.1");
ver.Sort((x, y) =>
{
var xparts = x.Split('.');
var yparts = y.Split('.');
for (int i = 0; i < xparts.Length; i++)
{
if (i >= yparts.Length)
return 1;
var xval = int.Parse(xparts[i]);
var yval = int.Parse(yparts[i]);
if (xval != yval)
return xval.CompareTo(yval);
}
return xparts.Length.CompareTo(yparts.Length);
});
The above code sorts the version numbers in ascending order.
To sort in descending order you can use ver.Reverse() after sorting the list.
ver.Sort((x, y) =>
{
var xparts = x.Split('.');
var yparts = y.Split('.');
for (int i = 0; i < xparts.Length; i++)
{
if (i >= yparts.Length)
return 1;
var xval = int.Parse(xparts[i]);
var yval = int.Parse(yparts[i]);
if (xval != yval)
return xval.CompareTo(yval);
}
return xparts.Length.CompareTo(yparts.Length);
});
ver.Reverse();
This way you can achieve the same thing without using LINQ.