查询动态对象列表以获取最大值和最小值

本文关键字:最大值 最小值 获取 动态 对象 列表 查询 | 更新日期: 2023-09-27 18:33:06

我有以下代码返回动态对象。我想查询它们并获取最小日期和最大日期,它们以 created_at 为单位。我将如何查询此内容?

目前,我正在使用foreach循环,并进行比较并设置日期。有没有更有效的方法可以做到这一点,我将如何做到这一点?我知道它的linq,但无法理解如何实际做到这一点的概念。

dynamic dynObj = JsonConvert.DeserializeObject(Data);
{
    "created_at": "Fri Sep 27 02:00:08 +0000 2013",
    "id": 
},

查询动态对象列表以获取最大值和最小值

string Data = @"[{
    ""created_at"": ""Fri Sep 27 02:00:08 +0000 2013"",
    ""id"": 1
},
{
    ""created_at"": ""Sat Sep 28 02:00:08 +0000 2013"",
    ""id"": 1
}]";
IEnumerable<dynamic> d = (dynamic)JsonConvert.DeserializeObject(Data);
var dates = d.Select(x => DateTime.ParseExact(x.created_at.ToString(),
    "ddd MMM dd HH:mm:ss K yyyy", CultureInfo.InvariantCulture))
    .Cast<DateTime>().ToList();
var maxDate = dates.Max();
var minDate = dates.Min();

你的dynObj似乎是一个数组或列表,对吗?

您可以使用 LINQ 查询,例如

list.Min(p => DateTime.Parse(p.created_at));

或者,无需在每次迭代中解析日期,只需将created_at的类型转换为DateTime