【发布时间】:2016-08-25 14:08:54
【问题描述】:
我有一个表中有 60 个值的数据库,这些值每分钟自动填充一次。我有一个查询,第一次将采用这 60 个值并填充 ints 的数组。
但是,该方法每分钟都会使用 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<int>代替数组?
标签: c# arrays algorithm entity-framework linq