У меня есть база данных с 60 значениями на таблице, значения заполняются каждую минуту автоматически. У меня есть запрос, который в первый раз примет эти 60 значений и заполнит массив int
s.Как вытеснить один массив значений int?
Однако каждую минуту этот метод выполняется с помощью SignalR, и логика должна заключаться в том, что положение 0 массива должно быть заменено позицией 1, позиция 1 с 2 и так далее, а последняя (59!) Должна быть заполненное последним значением из базы данных.
Я не хочу каждый раз воссоздавать массив и даже меньше делать выбор в базе данных, которая возвращает 60 строк каждый раз.
код у меня есть следующие
public class Chart_Broadcaster
{
//The Line Chart Class
public class LineChart
{
[JsonProperty("lineChartData")]
private int[] lineChartData;
[JsonProperty("colorString")]
private string colorString;
[JsonProperty("hora")]
private string[] hora = new string[60];
public void SetLineChartData()
{
//Suppose we have a list of 60 items.
using (ZigBeeContext db = new ZigBeeContext())
{
var lista = (from p in db.Medidas orderby p.FechaHora descending
select p
).Take(60).ToList();
lineChartData = db.Medidas.Select(p => p.Temperatura).Cast<int>().ToArray();
hora = db.Medidas.Select(p => p.FechaHora).Cast<string>().ToArray();
}
}
}
}
Используйте ['Queue'] (https://msdn.microsoft.com/en-us/library/7977ey2c (v = vs.110) .aspx) вместо массива, возможно? –
DavidG