using System; using System.Linq; public class Test { public static void Main() { var listStr = new[] { "20170822_10", "20170821_1", "20170823_4", "20170821_10", "20170822_11", "20170822_5", "20170822_2", "20170821_3", "20170823_6", "20170823_21", "20170823_20", "20170823_2" }; var sorted = listStr .OrderBy(s => s.Split('_')[0]) .ThenBy(s => int.Parse(s.Split('_')[1])); foreach (var s in sorted) { Console.WriteLine(s); } } }