gpt4 book ai didi

c# - 使用 Linq 对每天最早的条目进行分组

转载 作者:行者123 更新时间:2023-11-30 21:45:49 28 4
gpt4 key购买 nike

试图让我的头脑了解 Linq,同时记录我早上登录的时间,这应该是我进入附近办公室的时间。

到目前为止我的代码是:

EventLog SecurityLog = new EventLog("Security");

var AccountLoggedOnEntries = SecurityLog.Entries.Cast<EventLogEntry>()
.Where(x => x.InstanceId == 4624)
.Select(x => new
{
DateGenerated = x.TimeGenerated.ToShortDateString()
,
TimeGenerated = x.TimeGenerated.ToShortTimeString()
,
x.Message
})
.ToList();

DgvLogSummary.DataSource = AccountLoggedOnEntries;

DgvLogSummary.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;

我想过滤结果,以便每天只有一个条目,这是最早的时间。

在 SQL 中,我通常会取最早条目的消息,然后按所有字段分组。

如何在 Linq 中执行类似的查询?

最佳答案

在 LINQ 中,您可以分组,对每个组进行排序,然后选择第一项:

var AccountLoggedOnEntries = log.Entries.Cast<EventLogEntry>()
.Where(x => x.InstanceId == 4624)
.GroupBy(x => x.TimeGenerated.Date)
.Select(g => g.OrderBy(x => x.TimeGenerated).First())
.Select(x => new {
DateGenerated = x.TimeGenerated.ToShortDateString()
, TimeGenerated = x.TimeGenerated.ToShortTimeString()
, x.Message
})
.ToList();

关于c# - 使用 Linq 对每天最早的条目进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39828835/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com