Сортировка списка Строки в числовом виде (1,2,…, 9,10 вместо 1,10,2)

У меня есть список вроде этого:

var l = new List<string> {"bla 1.txt","bla 2.txt","bla 10.txt","bla 3.txt"};

Если я вызываю l.Sort () список сортируется в порядке 1,10,2,3, что имеет смысл с точки зрения чистой строки, но отстой с точки зрения пользователя.

Поскольку я не хочу / не могу принудительно мои пользователи назовут их 01, 02, 03, ... Интересно, есть ли встроенный метод или простой алгоритм для правильного обнаружения и сортировки чисел, чтобы у меня было 1,2,3, 10? Поскольку числа имеют длину всего 1 или 2 символа (то есть не более 99), я мог бы сделать регулярное выражение, которое временно префикс всех 1-значных чисел с 0 и сортировкой, но прежде чем изобретать колесо, мне интересно, существует ли что-то уже ?

.net 3.5SP1, если это важно, а не 4.0

16
задан Michael Stum 24 January 2011 в 23:03
поделиться