如何查找给定时间跨度内的所有数据

Kev*_*Dog 2 .net c# linq

基本问题在于确定现场传感器在其报告的数据中存在间隙的位置.收集所有数据并将其转换为数据库中的表.

所有记录都有一个DateSampleTaken字段,一旦记录按此字段排序,我想知道记录之间的差距(例如)超过15分钟的每个实例.一旦识别出间隙,就会创建包含该信息的对象.

我当然可以通过迭代来做到这一点,我只是想知道是否有Linq调用可以解决这个问题.

Ric*_*key 6

这是一个LINQ表达式,用于获取与下一个样本间隔十五分钟的样本序列:

var gaps = samples.Zip(samples.Skip(1),
    (s0, s1) =>
        new
        {
            Sample = s0,
            Delta = s1.DateSample - s0.DateSample,
        })
    .Where(result => result.Delta.TotalMinutes >= 15)
    .Select(result => result.Sample);
Run Code Online (Sandbox Code Playgroud)