using System.Collections.Generic;
using System.Linq;
using static System.Console;
public class Program {
public static void Main() {
var lista = new List<string> { "1.01", "1.A", "14.04", "14.11", "22.01", "3.04", "30.01", "4.01", "40.02" };
foreach (var item in lista.OrderBy(i => { var partes = i.Split('.'); return partes[0].PadLeft(2) + partes[1]; })) {
WriteLine(item);
}
}
}
//https://pt.stackoverflow.com/q/172424/101
dXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CnVzaW5nIFN5c3RlbS5MaW5xOwp1c2luZyBzdGF0aWMgU3lzdGVtLkNvbnNvbGU7CgkJCQkJCnB1YmxpYyBjbGFzcyBQcm9ncmFtIHsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkgewoJCXZhciBsaXN0YSA9IG5ldyBMaXN0PHN0cmluZz4geyAiMS4wMSIsICIxLkEiLCAiMTQuMDQiLCAiMTQuMTEiLCAiMjIuMDEiLCAiMy4wNCIsICIzMC4wMSIsICI0LjAxIiwgIjQwLjAyIiB9OwoJCWZvcmVhY2ggKHZhciBpdGVtIGluIGxpc3RhLk9yZGVyQnkoaSA9PiB7IHZhciBwYXJ0ZXMgPSBpLlNwbGl0KCcuJyk7IHJldHVybiBwYXJ0ZXNbMF0uUGFkTGVmdCgyKSArIHBhcnRlc1sxXTsgfSkpIHsKCQkJV3JpdGVMaW5lKGl0ZW0pOwoJCX0KCX0KfQoKLy9odHRwczovL3B0LnN0YWNrb3ZlcmZsb3cuY29tL3EvMTcyNDI0LzEwMQ==