Здравствуйте!
Есть код:
class test
{
//variables
internal Dictionary<string, int[]> MyDict = new Dictionary<string, int[]>();
//construction
public test()
{
MyDict.Add("test", new int[0]);
}
//add method
internal void AddNewElement(string dictString, int a)
{
//copy
int[] values = MyDict[dictString];
//resize
Array.Resize(ref values, values.Length + 1);
//add new value
values[values.Length - 1] = a;
//save ?!
MyDict[dictString] = values;
}
}
Подскажите, как бы Вы реализовали метод AddNewElement()?
Массивы -- это "статическая" структура данных, не подразумевающая изменение размера (т.е. добавление и удаление элементов).
Используйте список:
Dictionary<string, List[]> MyDict = new Dictionary<string, List[]>();
internal void AddNewElement(string dictString, int a)
{
List[] values = MyDict[dictString];
values.Add(a);
// стоит однако проверять, что список для такого ключа уже существует
}
class IntArraysDictionary
{
private Dictionary<String, Int32[]> _dictionary;
public IntArraysDictionary()
{
this._dictionary = new Dictionary<String, Int32[]>();
}
public Int32[] Add(String key, Int32[] intArray)
{
if(this._dictionary.Keys.Contains(key))
{
this._dictionary[key] = intArray;
return intArray;
}
this._dictionary.Add(key, intArray);
return intArray;
}
}
Есть такой вариант. Обратите внимание на именование класса, методов и переменных, а также на то, что инициализацию всех полей класса (его состояние) лучше производить непосредственно в конструкторе.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости