任何人都可以帮忙吗?
我有 1 个类,基本上它包含成员,并且在该类中是一个列表。
我在列表中的成员也是......所以基本上它是这样的,
我有 2 个成员,每个成员都有许多会话。
我希望只为每个成员返回 1 个会话。
我已经做了一个 LINQ 查询,但它当然不起作用......
我想我需要做一个自我加入,有什么想法吗?
基本上我的错误是我的子查询自加入中不存在 m 。
var sessions =
from m in this.members
join s in
(
from se in m.Sessions
group se by se.Name into g
select new {Name = g.Key, SessioEndTime = g.Max(a=>a.SessioEndTime)}
)
on m.Name equals s.Name
select new { MemberName = m.Name, SessionTime = s.SessioEndTime}
我将不胜感激任何人的任何反馈。
提前致谢。
编辑
好的,我设法做到了以下几点,但这是最好的方法吗?
var sessions =
from m in this.members
let sn = m.Sessions.OrderByDescending(a => a.SessionEndTime).FirstOrDefault()
select new { MemberName = m.Name, SessionTime = sn.SessioEndTime}
这种方式 sn 包含1条记录,但我可以访问所有属性...
但这是使用 LET 的最佳方式吗?
谢谢。