Сортировка по естественному порядку в C#
Обычное сравнение строк ставит "item10" раньше "item2", потому что сравниваются
символы по одному. Естественный порядок учитывает числовые фрагменты: сначала
"item2", затем "item10".
В .NET для этого подходит StringComparer.Create с
CompareOptions.NumericOrdering; им же можно сортировать списки имён файлов
и версий.
Отсортируем подписи с цифрами и возьмём первый элемент. В консоли
появится "img1":
using System.Collections.Generic;
using System.Globalization;
StringComparer natural = StringComparer.Create(
CultureInfo.InvariantCulture,
CompareOptions.NumericOrdering);
List<string> names = new List<string> { "img10", "img2", "img1" };
names.Sort(natural);
Console.WriteLine(names[0]);
Отсортируйте имена "clip10", "clip2" и "clip1" так, чтобы числа внутри шли по величине, и выведите последнее имя.