LINQ按日期-时间字段的降序选择前n个不同的日期



如何在LINQ C#中按降序从日期时间字段顺序中选择前n个不同的日期。我的输入和输出类似于

输入
2020-02-23 09:15:11.953
22020-01-30 09:15:11.613
2020-02-01 09:15:31.427
2002-02-06 10:08:44.530
2022-02-11 09:20:01.707
2202-02-11 10:22:01.7072204-02-18 09:16:02.227
2027-02-18 11:26:02.227
2024-02-18 09:16-02.227
2020-03-04 12:33:17.257
2030-03-05 11:20:55.167
2001 3-05 13:28:55.167

前3名下降的输出应给出

2020-03-05
22020-03-04
2020-02-18

您可以将GroupByDistinct一起使用,如下所示:

List<DateTime> dates = new List<DateTime>()
{
DateTime.Parse("2020-01-23 09:15:11.953"),
DateTime.Parse("2020-01-30 09:15:11.613"),
DateTime.Parse("2020-02-01 09:15:31.427"),
DateTime.Parse("2020-02-06 10:08:44.530"),
DateTime.Parse("2020-02-11 09:20:01.707"),
DateTime.Parse("2020-02-11 10:22:01.707"),
DateTime.Parse("2020-02-14 09:16:00.977"),
DateTime.Parse("2020-02-18 09:16:02.227"),
DateTime.Parse("2020-02-18 11:26:02.227"),
DateTime.Parse("2020-02-18 09:16:02.227"),
DateTime.Parse("2020-03-04 12:33:17.257"),
DateTime.Parse("2020-03-05 11:20:55.167"),
DateTime.Parse("2020-03-05 13:28:55.167")
};
var result = dates.OrderByDescending(o => o).GroupBy(g => g.Date).Distinct().Take(3).Select(s => s.Key).ToList();

最新更新