В приведенном ниже коде страницы определены как
public SortedDictionary<DateTime, float[]> Pages { get; set; }
Я пытаюсь динамически увеличивать размер этого массива. Может кто подскажет, как увеличить размер самого внутреннего поплавка []?
var tt = currentContainer.Pages[dateTime];
Array.Resize<float>(ref tt, currentContainer.Pages.Count + 1);
Ошибка 1
Я попробовал следующий код и получил исключение индекса вне допустимого диапазона
SortedDictionary<DateTime, float[]> Pages = new SortedDictionary<DateTime,float[]>();
float[] xx = new float[1];
xx[0] = 1;
DateTime tempTime = DateTime.UtcNow;
Pages.Add(tempTime, xx);
var tt = Pages[tempTime];
Array.Resize<float>(ref tt, Pages.Count + 1);
Pages[tempTime][1] = 2;
Ошибка 2
Ниже приводится ошибка времени компиляции (свойство, индекс или динамический член не могут использоваться в качестве значения ссылки)
SortedDictionary<DateTime, float[]> Pages = new SortedDictionary<DateTime,float[]>();
float[] xx = new float[1];
xx[0] = 1;
DateTime tempTime = DateTime.UtcNow;
Pages.Add(tempTime, xx);
var tt = Pages[tempTime];
// The line below is different from Fail 1 above ... compile time error
Array.Resize<float>(ref Pages[tempTime], Pages.Count + 1);
Pages[tempTime][1] = 2;
Вопрос
Каков наиболее эффективный ответ для изменения размера этого массива?
Изменится ли ответ, если окончательный размер будет 100-200 или 700-900?
Что, если я изменю размер выделения с +1 на +128? .. или больше?
SortedDictionary<DateTime, List<float>>
? Вам не нужно ничего изменять. Просто вызовите Add () в списке. ??? - person Brian Genisio   schedule 18.01.2011