Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Использование 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.539 c
2-1340112867
lavren
2012-06-19 17:34
2013.03.22
Новый пользователь AD


8-1227612031
axwork
2008-11-25 14:20
2013.03.22
Вопрос про раскодирование потока с IP камеры Axis (MJPEG)


6-1262861262
__Алексей__
2010-01-07 13:47
2013.03.22
Глюки ARP-кеша и получение MAC существующих хостов


15-1345901388
Фокс Йожин
2012-08-25 17:29
2013.03.22
Картина


2-1331284249
rraktir
2012-03-09 13:10
2013.03.22
Как сделать маску ввода под проценты?