Если ключи всегда только цифры, а эти числа всегда могут быть преобразованы в целые числа, то это довольно просто.Просто конвертируйте их в целые числа.
var sorted = from customer in customerList orderby Int32.ParseInt(customer.Code) select customer;
Если какой-либо из них не является целым числом, это приведет к сбою.
Другой способ сделать это - дополнить строку начальными нулями:
var sorted = from customer in customerList orderby PadToTenDigits(customer.Code) select customer;
где PadToTenDigits - это метод, оставленный в качестве упражнения, который превращает «1» в «0000000001» и «1000» в «0000001000» и т. Д.
Если вам нужно сделатьистинная «числовая» сортировка по сложным кодам, где, скажем, код «A300-B» сортирует перед «A1000-XYZ», тогда у вас возникнут более сложные проблемы.Хитрость в том, чтобы разбить код на «части» и сделать стабильную сортировку для каждой части.В основном, сортировка по основанию.