我有以下实体框架类定义:
class TimeValue
{
DateTime StartDate;
double Value;
}
假设给定以下一系列值,我只想知道值何时发生变化:
2000-01-01 100
2000-01-15 100
2000-02-01 110
2000-02-15 120
2000-03-01 120
2000-03-15 50
2000-04-01 50
2000-04-15 50
2000-05-01 120
所以结果是:
2000-01-01 100
2000-02-01 110
2000-02-15 120
2000-03-15 50
2000-05-01 120
我可以使用 lambda/linq 很好地选择值。然后我使用以下代码遍历结果以添加到列表中:
var timeValueQuery = _context.TimeValues.Where(...);
List<TimeValue> timeChanges = new List<TimeValue>();
TimeValue lastValue = null;
foreach (var tvq in timeValueQuery)
{
if (lastValue == null || tvq.Value != lastValue.Value)
{
timeChanges.Add(tvq);
}
lastValue = tvq;
}
只是想知道是否有更快/更好的方法来做到这一点。