Как сделать метод добавления элементов для словаря в ООП?

Я не могу найти никакого .add() метода и не знаю, что я могу для этого сделать.

public class MyDictionary<TKey, Tvalue>
{ 
    private MyDictionary<TKey, Tvalue> md ;
    public MyDictionary (int size) 
    { 
       md = new MyDictionary<TKey, Tvalue>(size); 
    }
    public void AddItem(TKey key, Tvalue value)
    { 
      md[key] = value;
    }
}

Под md.[key] есть красная линия и написано:

Невозможно применить индексирование с [] к выражению типа MyDictionary


person katras    schedule 05.07.2019    source источник
comment
Вам нужно написать индексатор. Но обратите внимание, что на данный момент у вас будет переполнение стека, как только вы вызовете свой конструктор, потому что он немедленно рекурсивно.   -  person Jon Skeet    schedule 05.07.2019
comment
md.Add(key, value); решит вашу проблему; чтобы добавить новый элемент в словарь, вам нужно передать соответствующий ключ и значение для добавления метода. Имя метода .Add(key, Value);, а не .add(key, value)   -  person Prasad Telkikar    schedule 05.07.2019
comment
Вы понимаете, что ваш MyDictionary<TKey, TValue> не наследует Dictionary<TKey, TValue>, поэтому у него не будет методов, поставляемых с Dictionary? Итак, может быть, ваше объявление класса должно выглядеть так public class MyDictionary<TKey, TValue> : Dictionary<TKey, TValue>?   -  person Rand Random    schedule 05.07.2019
comment
Теперь все работает и спасибо   -  person katras    schedule 05.07.2019


Ответы (1)


public void Add(TKey key, TValue value)
{
    this.Insert(key, value);
}

По этой ссылке

person Sam Mullinix    schedule 05.07.2019