В настоящее время я храню значения в списке, и когда я получаю новое значение по счетчику 1024. Я удаляю последнее в списке, и я уверен, что это не самый эффективный способ сделать это с точки зрения производительности и распределения.
Код: Выделить всё
private readonly List myValues = new(1025);
public void AddValue(double newValue) {
myValues.Insert(0, newValue);
if (myValues.Count > 1024) myValues.RemoveAt(1024);
}
Я также рассматриваю возможность использования прямого массива double[] и просто скопировать элементы из От 1 до -1 за каждое сложение, но у меня такое ощущение, что это тоже неверно.
Код: Выделить всё
private readonly double[] myArray = new double[1024];
public void AddValue2(double newValue) {
Array.Copy(myArray, 0, myArray, 1, 1023);
myArray[0] = newValue;
}
Подробнее здесь: https://stackoverflow.com/questions/782 ... the-oldest
Мобильная версия