Форум: "Основная";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизИспользование generics для реализации двойной сортировки Найти похожие ветки
← →
VLK32 (2011-01-13 17:04) [0]Привет всем!
Сейчас решил освоить шаблоны. Смотрю модули Generics.Collections и Generics.Defaults. Неплохой пример как использовать эту кухню. Все замечательно, но я сразу задумываюсь наперед. Надо будет сортировать списки записей (или объектов) у которых есть куча полей. И может понадобиться сортировка по двум полям (или более полям). Должна быть возможность задать поля для сортировки и их приоритет.
Как вариант можно объявить функцию сортировки со списком полей для сортировки. Но почему то эта идея мне не очень нравится. Получается как то громоздко. Поля придется передавать или в виде имен (строки) или в виде индексов. В одном случае будет наглядно, но медленно в другом все наоборот.
Кто-нибудь может подсказать известные решения такой задачи? Чтобы работало быстро и желательно код выглядел бы логично и понятно.
← →
DiamondShark © (2011-01-13 18:26) [1]Вариант первый.
Контейнеры используют экземпляр объекта-компаратора, который знает, как надо сравнивать экземпляры хранимых объектов.
Вариант второй.
Сами экземпляры реализуют интерфейс-компаратор, и умеют сравнивать сами себя со своими сородичами. Контейнер использует интерфейс хранимых объектов.
Конкретнее не могу ничего сказать, так как понятия не имею, что это за дженерики такие в Дельфи7.
← →
_Юрий (2011-01-14 21:42) [2]
> Конкретнее не могу ничего сказать, так как понятия не имею,
> что это за дженерики такие в Дельфи7.
Практические такие же, как в сишарпе
← →
_Юрий (2011-01-14 21:43) [3]Ну да, не в седьмой версии конечно же
← →
Юрий Зотов © (2011-01-16 18:00) [4]> Поля придется передавать или в виде имен (строки) или в виде индексов.
> В одном случае будет наглядно, но медленно в другом все наоборот.
Может быть, подойдут именованные константы?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.219 c