Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpEqNo 95 of 509 menu
◀ ▶

Сортировка по естественному порядку в 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" так, чтобы числа внутри шли по величине, и выведите последнее имя.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить