Linq分组问题

发布于 2024-10-20 05:32:51 字数 794 浏览 2 评论 0原文

我的集合中有以下对象:

事务:
类型=“小部件”
日期 =“2011 年 3 月 1 日”
名称 =“Foo”

交易:
类型=“小部件”
日期 =“2011 年 3 月 4 日”
名称 =“Bar”

交易:
类型=“小工具”
日期 =“2011 年 3 月 2 日”
名称 =“Baz”

交易:
类型=“小发明”
日期 =“2011 年 3 月 1 日”
姓名 =“谁”

交易:
类型=“小发明”
日期 =“2011 年 3 月 2 日”
名称 =“内容”

交易:
类型=“小发明”
日期 =“2011 年 3 月 6 日”
Name =“When”

我想得到以下结果,按类型分组。如果有多个,则按日期仅返回第一个。

交易:
类型=“小部件”
日期 =“2011 年 3 月 1 日”
名称 =“Foo”

交易:
类型=“小工具”
日期 =“2011 年 3 月 2 日”
名称 =“Baz”

交易:
类型=“小发明”
日期 =“2011 年 3 月 1 日”
姓名=“谁”

I have the following objects in a collection:

Transaction:
Type = "Widget"
Date = "3/1/2011"
Name = "Foo"

Transaction:
Type = "Widget"
Date = "3/4/2011"
Name = "Bar"

Transaction:
Type = "Gadget"
Date = "3/2/2011"
Name = "Baz"

Transaction:
Type = "Gizmo"
Date = "3/1/2011"
Name = "Who"

Transaction:
Type = "Gizmo"
Date = "3/2/2011"
Name = "What"

Transaction:
Type = "Gizmo"
Date = "3/6/2011"
Name = "When"

I want to end up with the following, grouped by Type. If there are multiple, return only the first one chronologically by date.

Transaction:
Type = "Widget"
Date = "3/1/2011"
Name = "Foo"

Transaction:
Type = "Gadget"
Date = "3/2/2011"
Name = "Baz"

Transaction:
Type = "Gizmo"
Date = "3/1/2011"
Name = "Who"

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

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

发布评论

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

评论(3

吃兔兔 2024-10-27 05:32:51

流利形式:

var groups = transactions.GroupBy(t => t.Type)
                         .Select(g => g.OrderBy(t => t.Date).First());

查询形式:

var groups = from t in transactions
             group t by t.Type into g 
             select g.OrderBy(t => t.Date).First();

In fluent form:

var groups = transactions.GroupBy(t => t.Type)
                         .Select(g => g.OrderBy(t => t.Date).First());

In query form:

var groups = from t in transactions
             group t by t.Type into g 
             select g.OrderBy(t => t.Date).First();
邮友 2024-10-27 05:32:51

这应该有效:

var groupedTransactions = transactions.GroupBy(t => t.Type)
                                      .Select(g => g.OrderBy(t => t.Date).FirstOrDefault());

This should work:

var groupedTransactions = transactions.GroupBy(t => t.Type)
                                      .Select(g => g.OrderBy(t => t.Date).FirstOrDefault());
无人问我粥可暖 2024-10-27 05:32:51

类似的东西

var q =
from t in MyTypes
group t by t.Type into g
select g.OrderBy(t => t.Date).First();

something like

var q =
from t in MyTypes
group t by t.Type into g
select g.OrderBy(t => t.Date).First();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文