![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Lavitar |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 9.4.2006 Репутация: нет Всего: нет |
Необходим класс, который мог бы работать как Dictionary только в обе стороны. Тоесть ключ является также значением, а значение также ключом.
Что-нибудь вроде такого синтаксиса. |
|||
|
||||
| HalkaR |
|
|||
![]() Пуфыстый назгул ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2132 Регистрация: 8.12.2002 Где: В Москве Репутация: 14 Всего: 42 |
Это сообщение отредактировал(а) HalkaR - 11.5.2006, 22:32 |
|||
|
||||
| Lavitar |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 9.4.2006 Репутация: нет Всего: нет |
Да...толькоя ищу готовый класс, который хорошо работает, ну разумеется грамотно написанный с поддержкой интерфейсов - IEnumerable, ICollection...
|
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 21 Всего: 61 |
Lavitar, так в чем проблема? Используя вышеописанный класс можно сделать все что угодно.
|
|||
|
||||
| Leksey |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 12.12.2004 Репутация: нет Всего: 1 |
А если нужна поддержка индексирования как в обычном массиве?
|
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
В сем проблема? Сюда тоже можно добавить индексатор. |
|||
|
||||
| Lavitar |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 9.4.2006 Репутация: нет Всего: нет |
arilou,
Во-первых я спрашиал про готовый компонент, тоесть уже написанный класс. Так как заниматься велосипедами я не люблю. Ну если такого нет так и быть придется написать. ЗЫ HalkaR, Твоя реализация заранее плоха так как использует два Dictionary, что не очень производительно. |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Помнится, в STL был такой multimap. В фреймворке такой коллекции нет. Если брать по аналогии, то код типа:
к сожалению не катит, потому что хэшкод вычисляется 1 раз и Pair с одним из элементов = null имеет хэшкод не такой, как у пары с обоими не-null элементами. Других идей в голову не приходит, возможно что вариант с двумя Dictionary, как выше, прокатит. Или на codeproject.com, там этих коллекций целая туева хуча. -------------------- ![]() |
|||
|
||||
| Lavitar |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 9.4.2006 Репутация: нет Всего: нет |
mr.DUDA,
multimap из STL жто совсем не то. multimap это карта, в которой могут быть повторяющиеся ключи, и более от обычной карты она не чем не отличается. |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Ну значит перепутал
Помню был какой-то контейнер, а как назывался - не помню. Может и не в STL -------------------- ![]() |
|||
|
||||
| Lavitar |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 9.4.2006 Репутация: нет Всего: нет |
mr.DUDA,
Тогда я выложу свою реализацию, может она будет кому полезна. |
|||
|
||||
| Leksey |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 12.12.2004 Репутация: нет Всего: 1 |
||||
|
||||
| Lavitar |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 9.4.2006 Репутация: нет Всего: нет |
Вот код, который реализует DualList с возможностью индексированного доступа. Возможны реализации с более быстрым доступом по ключу, но без индексации.
|
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 25 Всего: 173 |
Lavitar, зачем вручную писать IEnumerator при наличии yield?
Надеюсь, этот класс не будут использовать для хранения больших коллекций и частого доступа по ключу. O(N) однако… -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Странно, что выбран List а не Dictionary.
-------------------- ![]() |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |