using System;
using System.Collections.Generic;
using System.Linq;
public class Test
{
public static void Main()
{
string[] things= new string[] { "100-1", "100-11", "100-3", "100-20" };
IEnumerable<string> ordered = things
.Select(s => new
{
str = s,
firstPart = s.Split('-').ElementAtOrDefault(0),
secondPart = s.Split('-').ElementAtOrDefault(1)
})
.OrderBy(x => int.Parse(x.firstPart))
.ThenBy(x => int.Parse(x.firstPart))
.Select(x => x.str);
foreach (string s in ordered)
Console.WriteLine(s);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CgpwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CiAgICBzdHJpbmdbXSB0aGluZ3M9IG5ldyBzdHJpbmdbXSB7ICIxMDAtMSIsICIxMDAtMTEiLCAiMTAwLTMiLCAiMTAwLTIwIiB9OwogICAgSUVudW1lcmFibGU8c3RyaW5nPiBvcmRlcmVkID0gdGhpbmdzCiAgICAgICAgICAgICAgICAuU2VsZWN0KHMgPT4gbmV3CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgc3RyID0gcywKICAgICAgICAgICAgICAgICAgICBmaXJzdFBhcnQgPSBzLlNwbGl0KCctJykuRWxlbWVudEF0T3JEZWZhdWx0KDApLAogICAgICAgICAgICAgICAgICAgIHNlY29uZFBhcnQgPSBzLlNwbGl0KCctJykuRWxlbWVudEF0T3JEZWZhdWx0KDEpCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgLk9yZGVyQnkoeCA9PiBpbnQuUGFyc2UoeC5maXJzdFBhcnQpKQogICAgICAgICAgICAgICAgLlRoZW5CeSh4ID0+IGludC5QYXJzZSh4LmZpcnN0UGFydCkpCiAgICAgICAgICAgICAgICAuU2VsZWN0KHggPT4geC5zdHIpOwoKICAgIGZvcmVhY2ggKHN0cmluZyBzIGluIG9yZGVyZWQpCiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUocyk7Cgl9Cn0=