Linq 返回第一个日期

本文关键字:日期 第一个 返回 Linq | 更新日期: 2023-09-27 18:18:33

我有查询:

var q = db.tblArcadeGamePlays
    .Where(c => c.GameID == GameID && c.ReferalID != 0 && c.ReferalID != null)
    .GroupBy(r => new { r.ReferalID })
    .Select(g => new { Plays = g.Count(), URL = g.Key.ReferalID })
    ;       

tblArcadeGamePlays还有一个字段Date,在组中,我想返回该组包含的最早观测日期。

我该怎么做?

Linq 返回第一个日期

.Select(g => new {
       Plays = g.Count(), URL = g.Key.ReferalID,
       MinDate = g.Min(x => x.Date
});

您可能还会发现 LINQ 语法在这里更易于阅读/维护,但是...扩展语法也将起作用。但正如 LINQ 所说:

var q = from c in db.tblArcadeGamePlays
        where c.GameID == GameID && c.ReferalID != 0 && c.ReferalID != null
        group c by c.ReferalID into g
        select new {
            Plays = g.Count(), URL = g.Key.ReferalID, MinDate = g.Min(x=>x.Date)
        };
这可能

有效

var firstIndex = q.Min(c => c.Date);
var q = db.tblArcadeGamePlays     .Where(c => c.GameID == GameID && c.ReferalID != 0 && c.ReferalID != null)     .GroupBy(r => new { r.ReferalID })     .Select(g => new { Plays = g.Count(), URL = g.Key.ReferalID , Date = g.Min(cc=>cc.DateField) })     ; 

将日期字段替换为您的实际属性