gpt4 book ai didi

c# - 选择分组中的字段

转载 作者:行者123 更新时间:2023-12-03 22:56:46 25 4
gpt4 key购买 nike

我的 DataTable 中有如下数据:

   id   vrn   seenDate
--- ---- --------

1 ABC 2017-01-01 20:00:05
2 ABC 2017-01-01 18:00:09
3 CCC 2016-05-05 00:00:00

我正在尝试修改数据以仅显示 vrn具有最近日期的值。这是我到目前为止所做的:

myDataTable.AsEnumerable().GroupBy(x => x.Field<string>("vrn")).Select(x => new { vrn = x.Key, seenDate = x.Max(y => y.Field<DateTime>("seenDate")) });

我需要修改上面的内容以选择 id字段(即我不想对此字段进行分组,但我希望将其包含在结果数据集中)。

我无法输入x.Field<int>("id")Select()部分,因为 Field 子句不存在。

最佳答案

您需要 MoreLINQ 中的 MaxBy 方法等效。

在标准 LINQ 中,可以使用 OrderByDescending + First 调用来模拟:

var result = myDataTable.AsEnumerable()
.GroupBy(x => x.Field<string>("vrn"))
.Select(g => g.OrderByDescending(x => x.Field<DateTime>("seenDate")).First())
.Select(x => new
{
vrn = x.Field<string>("vrn"),
id = x.Field<int>("id"),
seenDate = x.Field<DateTime>("seenDate"),
});

关于c# - 选择分组中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43517261/

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