如何编写以下 group by 和剥离时间 Linq 查询?

发布于 2024-10-19 21:00:14 字数 520 浏览 4 评论 0原文

我有这样的列表

Id    Date
1     01/03/2011 14:15:23.320
1     01/03/2011 16:15:23.320
1     01/03/2011 18:15:23.320
1     01/04/2011 19:15:23.320
2     01/03/2011 14:15:23.320
2     01/03/2011 15:15:23.320
2     01/03/2011 18:15:23.320
2     01/05/2011 19:15:23.320
2     01/07/2011 20:15:23.320 

- 我想要的输出是 -

Id    Date
1     01/03/2011
1     01/04/2011 
2     01/03/2011 
2     01/05/2011 
2     01/07/2011

那么如何在 id 的第一个列表上进行分组并仅采用日期部分并在 Linq 中实现上述结果?

I have list like this-

Id    Date
1     01/03/2011 14:15:23.320
1     01/03/2011 16:15:23.320
1     01/03/2011 18:15:23.320
1     01/04/2011 19:15:23.320
2     01/03/2011 14:15:23.320
2     01/03/2011 15:15:23.320
2     01/03/2011 18:15:23.320
2     01/05/2011 19:15:23.320
2     01/07/2011 20:15:23.320 

My desired output is -

Id    Date
1     01/03/2011
1     01/04/2011 
2     01/03/2011 
2     01/05/2011 
2     01/07/2011

So how can I group by on the first list on id and take only the date part and achieve the results above in Linq ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

两仪 2024-10-26 21:00:14

尝试这样的操作:

var result = yourList.GroupBy(item => 
    new {Id = item.Id, Date = item.Date.Date});

基本上,DateTime.Date 会去除时间信息。

要循环结果,您可以这样做:

foreach(var grp in result)
{
    Console.WriteLine("{0}: {1}", grp.Key.Id, grp.Key.Date);
}

Try something like this:

var result = yourList.GroupBy(item => 
    new {Id = item.Id, Date = item.Date.Date});

Basically, DateTime.Date strips the time information.

To loop through the result, you could do:

foreach(var grp in result)
{
    Console.WriteLine("{0}: {1}", grp.Key.Id, grp.Key.Date);
}
只是我以为 2024-10-26 21:00:14

您似乎想要根据日期 id 进行分组,因此您希望将它们提取到可以分组的结构中。当您创建此键结构时,您可以使用 Date 属性设置日期格式以正确创建分组:

from item in list
group item by new { item.Id, Date = item.Date.Date } into g
select g

此时,返回的分组中的键将为您提供所需的列表。

It appears that you want to group on the date and id, so you want to pull those out into a structure that you can group on. It's when you create this key structure that you can format the date using the Date property to create the grouping correctly:

from item in list
group item by new { item.Id, Date = item.Date.Date } into g
select g

At that point, the keys in the grouping returned will give you the list you want.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文