Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с интерфейсом IComparer, можно ли не писать множество классов? 
:(
    Опции темы
SmartBye
Дата 7.12.2009, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



Сейчас создаю структуру данных, которую нужно будет сортировать по нескольким критериям (т.е. разные типы сортировки), но так же мне хотелось бы, что бы эта же сортировка поддерживалась и в обратном порядке. В связи с этим возник вопрос, можно ли организовать так схему работы этого интерфейса, что бы не писать для каждого вида (т.е. по убыванию и во возрастанию) свой класс, наследующий IComparer?

Просто если для каждого вида сортировки писать по два вида классов (вверх и вниз), то лаконичности программы это не поспособствует.

Сортировка идет через (имя переменной типа List<Тип>).Sort(интерфейс).
PM MAIL   Вверх
diadiavova
Дата 7.12.2009, 07:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Конечно можно. Просто введи в класс, реализующий IComparer, дополнительное свойство, ну например IsAsc, в методе Comare проверяй его значение и если оно true, сортируй по-возрастанию, в противном случае - по убыванию.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
SmartBye
Дата 7.12.2009, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



Да, что-то я сразу не сообразил, что в конструкторе к классу можно задать направление =)
PM MAIL   Вверх
diadiavova
Дата 7.12.2009, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Да не обязательно в конструкторе. Параметры сравнения можно менять у уже существующего объекта(если есть в том нужда).


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0978 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.