2014-03-02 2 views
-1

Есть ли интерфейс IDictionary, который не поддерживает удаление пар ключ-значение?Интерфейс IDictionary без удаления()

К сожалению, IReadOnlyDictionary не помогает, так как он не позволяет изменять пары «ключ-значение».

Если нет, то какой способ реализовать сам? Это даже хорошая идея?

+0

Итак, если я вас правильно понимаю, вы хотите, чтобы иметь возможность _change_ записи в словаре, но не _remove_ записи? –

+1

В чем причина этого? Вам нужен интерфейс коллекции, который будет частью публичного API и не поддерживает удаление объектов? –

+0

@ Chris/Ondrej: Да. (обратите внимание: нулевые значения в порядке, но ключи всегда должны быть в словаре - по разным причинам) –

ответ

-1

После того, как в комментарии указано, что в .NET нет встроенного интерфейса, лучше всего создать собственный интерфейс и реализовать его с адаптером до Dictionary<TK,TV>.

(если ничего лучше не приходит, я собираюсь принять свой ответ в течение двух дней времени)

+0

Нам может понадобиться дополнительная информация. Вы откроете интерфейс или класс как часть вашего контракта? Во втором случае явная реализация и NotSupportedException могут быть жизнеспособными. Кроме того, не забывайте также EditorBrowseableAtrribute. –

+0

yupe, как я прокомментировал. Предлагаю вам реализовать интерфейсный адаптер для словаря и изменить метод удаления .. вот он .. –