我有一個日期時間表和值的表。該值是日期時間內的一個容器的體積。我想計算在過去10天內每小時內儲罐的填充量/清空量。使用LINQ計算小時燃料消耗
我每隔15分鐘測量一次油箱,但也許我會在將來每20分鐘測量一次。我正在嘗試使用LINQ來計算它。
我所做的是:
allDataView.RowFilter = String.Format(CultureInfo.InvariantCulture.DateTimeFormat,
"DateOfData < #{0}# AND DateOfData > #{1}#", DateTime.Now, DateTime.Now.AddDays((-1) * daysInterval));
allDataView.Sort = "DateOfData DESC";
// making the diff between every sample during the last daysInterval days and put it into a list with these differences.
var result = allDataView.Table.AsEnumerable().Zip(allDataView.Table.AsEnumerable().Skip(1), (row1, row2) => Convert.ToDouble(row1["Value"])-Convert.ToDouble(row2["Value"]));
但這些都是每次測量之間的差異。我想要的是在該日期內計算各個時段樣本之間的差異。
例如:
9:50 0.5
10:05 1
10:20 2
10:35 2.5
10:50 3
11:05 5
比我要帶那是在11:00的最新值(3),並採取最後的值是10點(0.5),並插入3 -0.5 = 2.5到列表並在該時間段內繼續。
我想用Linq來做。感謝任何幫助如何實施它。
非常感謝。
好奇至於原因downvote? – DrewbieDoo
業務邏輯不應該在DataBase中實現。另外BL應該是源安全的。 [分離關注](http://en.wikipedia.org/wiki/Separation_of_concerns) – mecek
乾杯,但是我建議在sql server中簡單選擇組,然後在Linq中完成額外的功能,SQL Server運行速度比LINQ快能夠。 – DrewbieDoo