I have found this useful for when I need to sort names that begin with numbers.
var myList = new List<string>();
myList.Add("10 Kings");
myList.Add("1 Queens");
myList.Add("524 3rd");
myList = myList.OrderBy(x=>x.NumAlpha()).Tolist();
public static string NumAlpha(this string s)
{
if (s.IsNull()) return string.Empty;
string s2 = Regex.Replace(s.ToString(), @"^[0-9]+", "");
if (s2.Length != s.Length)
s = s.Substring(0, s.Length - s2.Length).PadLeft(10, "0"[0]) + s2;
return s;
}