using System; using System.Linq; using System.Collections.Generic; public class Test { public static void Main() { var list = new List() { "50:James", "23:Jessica", "70:Ricky", "70:Dodger", "50:Eric" }; var ordered = list.Select(s => new { Str = s, Split = s.Split(':') }) .OrderByDescending(x => int.Parse(x.Split[0])) .ThenBy(x => x.Split[1]) .Select(x => x.Str) .ToList(); foreach(string s in ordered) Console.WriteLine(s); } }