В моем классе я хочу использовать словарь со следующим объявлением:
Dictionary<string, T[]>
Поскольку операции моего класса абсолютно одинаковы для всех универсальных типов, я не хочу определять свой класс как универсальный (что означает, что мне придется создавать отдельный экземпляр моего класса для каждого универсального типа, который я вставляю в словарь?).
Одна альтернатива, которую я пытаюсь использовать, - использовать Dictionary<string, object>
вместо:
public void Add<T>(string str, T value)
{
// Assuming key already exists
var array = (T[]) dictionary[str];
array[0] = value;
}
Тем не менее, при переборе словаря, как преобразовать значение объекта обратно в массив?
foreach(string strKey in dictionary.Keys)
{
var array = (T[]) dictionary[strKey]; // How to cast here ?
//...
array[0] = default(T);
}
Спасибо.