C#按30分钟间隔分组返回错误结果

C#按30分钟间隔分组返回错误结果,c#,C#,我正在使用Highcharts来直观地显示信息。现在,我正在按小时对所有数据库表记录进行分组: var lstGroupSummariesByHour = lstAllSummaries.Where(x => x.DateTimeProperty.Year == year && !x.deleted) .GroupBy(x => x.DateTimeProperty.Hour) .Select(x => new objec

我正在使用Highcharts来直观地显示信息。现在,我正在按小时对所有数据库表记录进行分组:

var lstGroupSummariesByHour =
    lstAllSummaries.Where(x => x.DateTimeProperty.Year == year && !x.deleted)
        .GroupBy(x => x.DateTimeProperty.Hour)
        .Select(x => new object[] {x.Count()}).ToArray();
这是我的折线图上的一条线。。但我希望创建一个新行,每半小时显示一次所有摘要。有没有一个简单的LINQ lambda方法来实现这一点

根据“如果我想要30分钟的间隔”,我的代码看起来是这样的,因为在第二个答案中,他将分钟除以12,得到5分钟的间隔

var lstGroupSummariesByHalfHour =
    lstAllSummaries.Where(x => x.DateTimeProperty.Year == year && !x.deleted)
        .GroupBy(
            x =>
                new DateTime(x.DateTimeProperty.Year, x.DateTimeProperty.Month, x.DateTimeProperty.Day, x.DateTimeProperty.Hour,
                    x.DateTimeProperty.Minute / 2, 0))
        .Select(x => new object[] {x.Count()}).ToArray();
这正好在3500记录下返回,这导致X轴上的Highcharts错误没有足够的刻度。。从0到24(基于小时)。。既然一天有48个半小时,它不应该返回48小时吗?24*2(这仍然会返回highcharts错误,但我稍后会处理它)

如何修复上面的代码以每半小时获得一次结果

更新

我要寻找的(例如)是0100-01300131-02001-0230之间的摘要数量。。等等等等

以下是我的图表当前的样子:

我想获得每个数字(小时)之间的勾号的摘要计数。。0030.. 0130.. 0230


我的图表目前是以全年为基础的。。所以一年四季x'0小时内的摘要数..'y'1小时内的摘要数。。等等等等。。所以我在寻找0000-0030031-0100101-0130之间发生的全年总结总数。。以此类推。

您需要将分钟数量化为0或30

new DateTime(
  x.DateTimeProperty.Year, 
  x.DateTimeProperty.Month, 
  x.DateTimeProperty.Day, 
  x.DateTimeProperty.Hour, 
  x.DateTimeProperty.Minute > 30 ? 30 : 0,
  0));

我想知道x.DateTimeProperty.Hour,x.DateTimeProperty.Minutes/30?请注意,这样做并没有使用索引,可能会执行完整的表扫描。“这取决于你掌握了多少数据,表现可能很糟糕。”狗仔队更新了我的问题。。因为我忘了在
Where()
子句中包含
x=>x.DateTimeProperty.Year==Year
x.DateTimeProperty.Minute/2
背后的原因是什么?假设分钟数是12,为什么要重做第6次?另外,如果你期望有48条记录,那么你可能想忽略
,除非你真的期望一年中每天有48条记录。我认为这是一种更好的方法。还避免了整数除法的问题。仍然返回6000多条记录。我更新了我的问题,以便更清楚地了解我要查找的内容。此外,更新了我的代码,因为我忘了在
Where()
子句中包含
x=>x.DateTimeProperty.Year==Year
。@Stanislas我甚至认为不需要一个全新的行。。相反,我可以只编辑当前正在工作的行(按小时分组),而不是按半小时分组。。如果可能的话。