2012-03-12 5 views
1

Можно ли добавлять элементы в отсортированный список с тем же значением, потому что когда я пытаюсь это сделать, это показывает мне ошибку:
«Запись с тем же ключом уже существует».
Если это возможно, то как?Элементы отсортированного списка

+0

Возможный дубликат [C# Сортировка коллекции, которая позволяет дублировать ключи] (http://stackoverflow.com/questions/5716423/c-sharp-sortable-collection-which-allows-duplicate-keys) –

ответ

3

Это не возможно * добавить дубликаты ключей, как указано другими пользователями.

В C# вместо этого вы можете использовать класс Lookup, который позволяет хранить несколько значений с одним и тем же ключом.

См: http://msdn.microsoft.com/en-us/library/bb460184.aspx

* Возможно, просматривать комментарии, но только определив, что устройство сравнения никогда не возвращает равенство для равных элементов, которые ИМО является действительно очень плохой идеей.

+0

Возможно. См. [Ответ на Knasterbax] (http://stackoverflow.com/a/21886340/224976) к аналогичному вопросу –

+0

Это решение нарушает предварительное условие контейнера (что два равных ключа возвращают равенство), и как комментаторы указали, что вводит множество других проблем. Лучше всего использовать контейнер, предназначенный для использования таким образом IMO. Тем не менее я уточню свой ответ. – sji

+0

Хорошая точка. Комментарии в ответе Кастербакса показывают некоторые оговорки –

1

Нет, это невозможно. Ключи должны быть уникальными.

+0

Возможно. См. [Ответ Knasterbax] (http://stackoverflow.com/a/21886340/224976) на аналогичный вопрос –

+0

Использование ответа Kasterbax имеет оговорки. Читать комментарии –

0

Определить класс, который реализует IComparer. Когда вы создаете экземпляр SortedList, вы передаете экземпляр своего класса. Выезд Knasterbax's answer.

Смежные вопросы