Я пытаюсь написать метод расширения для вставки данных в словарь словарей определяется следующим образом:метод расширения для словаря Словари
items=Dictionary<long,Dictionary<int,SomeType>>()
То, что я до сих пор:
public static void LeafDictionaryAdd<TKEY1,TKEY2,TVALUE>(this IDictionary<TKEY1,IDictionary<TKEY2,TVALUE>> dict,TKEY1 key1,TKEY2 key2,TVALUE value)
{
var leafDictionary =
dict.ContainsKey(key1)
? dict[key1]
: (dict[key1] = new Dictionary<TKEY2, TVALUE>());
leafDictionary.Add(key2,value);
}
, но компилятор ему не нравится. Утверждение:
items.LeafDictionaryAdd(longKey, intKey, someTypeValue);
дает мне ошибку вывода типа.
Для утверждения:
items.LeafDictionaryAdd<long, int, SomeType>(longKey, intKey, someTypeValue);
я получаю»... не содержит определение ... и лучшую перегрузку методы расширения имеют некоторые недопустимые аргументы
Что я делаю неправильно. ?
Это работает для меня, когда я пытался это: | – mquander
Argh. Вот это боль. Нет модов вообще? – spender
О, у меня были мои «предметы», объявленные как IDictionary из словарей - это, вероятно, ключевое различие. – mquander