LINQ:内部连接到子查询中的第一行?

Mar*_*tin 4 linq linq-to-objects linq-to-sql

有人可以帮忙吗?

我有2个班,基本上有1个会员和其他会议.

它们被称为"名称"的共同字段连接在一起

有1个成员,但可以是很多会话.

所以如果我做一个标准的加入我会回来1个成员和很多会话..我只想回到第一排会话.

会话中有一个名为SessioEndTime的字段.所以我需要由DESC订购这个来挑选第一条记录.

这是我的linq我有太多的回报,我想我需要一个子查询,但我有点困惑.

  var sessions = from m in this.members 
                   join s in this.sessions
                   on m.Name equals s.Name
                   select new { MemberName = m.Name, SessionTime = s.SessioEndTime};
Run Code Online (Sandbox Code Playgroud)

帮助真的很感激.

编辑

为了说清楚,想象我有5个成员,每个成员都有NUMEROUS个会话.我只希望收到我的5个成员但每个只有1个会话,该会话是最新的会话,可以从SessionEndTime获得.

我想我做得更清楚一点,如果我没有那么请告诉我.

Cha*_*ndu 7

试试这个:

var sessions =  
    from m in this.members                     
    join s in 
    (
        from se in this.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}
Run Code Online (Sandbox Code Playgroud)