Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# linq组按小时范围?_C#_Linq_Group By - Fatal编程技术网

C# linq组按小时范围?

C# linq组按小时范围?,c#,linq,group-by,C#,Linq,Group By,我按小时对数据进行分组,如下所示: group c by new { date = new DateTime(Date.Year, Date.Month, Date.Day, Date.Hour, 5, 0), name = c.Name } into g 我想得到这样的结果:10.05-11.05当我调试代码时,代码日期会像我预期的那样返回。但数据仍然分组在10.00-11.00之间 我希望我能解释。这样做的逻辑是什么 谢谢。这很有效,但我应该把我的约会日期拿回来(10:05)。但是它返回R

我按小时对数据进行分组,如下所示:

group c by new { date = new DateTime(Date.Year, Date.Month, Date.Day, Date.Hour, 5, 0), name = c.Name } into g
我想得到这样的结果:
10.05-11.05
当我调试代码时,代码日期会像我预期的那样返回。但数据仍然分组在
10.00-11.00之间

我希望我能解释。这样做的逻辑是什么


谢谢。

这很有效,但我应该把我的约会日期拿回来(10:05)。但是它返回
ReadDate={01.01.0001 00:00:00}System.DateTime
my expected例如
ReadDate={09.11.2012 10:05:45}
@AliRızaAdıyahşi我不知道如何使用它,因为你没有显示你的真实代码。但这里的关键是
记号的使用。其他部分只是linq技巧(不要使用组的
)。
var groups = dList.GroupBy(d => (d.Ticks - 5*TimeSpan.TicksPerMinute) / TimeSpan.TicksPerHour)
                .Select(g => g.ToList())
                .ToList();
let offSetDate = Date.AddMinutes(-5)  //shift back so that Year,Month,Day,Hour are all that matter.
let groupKey = new {
  date = new DateTime(offSetDate.Year, offSetDate.Month, offSetDate.Day, offSetDate.Hour, 5, 0),
  name = c.Name
}
group c by groupKey into g