Всем привет! Сегодня расскажу о том, как решить довольно интересную задачу, которая возникла у меня однажды при работе с Revit. Впрочем, изложенные здесь вещи можно применить в любом C# приложении. У нас есть Revit-документ с некоторым количеством листов. Мы хотим создать окно, где пользователю будут представлены эти листы, отсортированные по номеру листа. Мы пишем код, пишем окно, делаем тестовый файл с 5 листами, всё отлично работает. Но потом к нам приходят пользователи и говорят "а почему листы отсортировались в порядке 1, 10, 11, 12 и т.д.". Мы осознаём, что свойство SheetNumber у листа — это строка (и правда, мы и в интерфейсе Ревита можем вписать в номер листа всё что угодно). Строки сортируются по правилам сортировки строк, посимвольно и, всё верно, порядок такой и будет: 1, 10, 11, ... 19, 2, 20 и так далее. Это равносильно тому, как если бы у нас были строки А, АА, АБ, АВ, ... АЖ, Б, БA. Они отсортировались по алфавиту посимвольно, просто при сортировке строк символы сравнива
Изменение правил сортировки элементов в C#
14 октября 202414 окт 2024
94
3 мин