C# 查询动态对象列表中的最大值和最小值

C# 查询动态对象列表中的最大值和最小值,c#,linq,object,C#,Linq,Object,我有以下返回动态对象的代码。我想查询它们,并获得最小日期和最大日期,保存在created\u的中。我如何质疑这一点 目前我正在使用一个foreach循环,并进行比较和设置日期。有没有一种更有效的方法可以做到这一点?我将如何着手做到这一点?我知道它的关键,但我不能让我的头周围的概念,如何实际做到这一点 dynamic dynObj = JsonConvert.DeserializeObject(Data); { "created_at": "Fri Sep 27 02:00:08 +000

我有以下返回动态对象的代码。我想查询它们,并获得最小日期和最大日期,保存在
created\u的
中。我如何质疑这一点

目前我正在使用一个
foreach
循环,并进行比较和设置日期。有没有一种更有效的方法可以做到这一点?我将如何着手做到这一点?我知道它的关键,但我不能让我的头周围的概念,如何实际做到这一点

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

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

您可以使用linq查询,如

list.Min(p => DateTime.Parse(p.created_at));
或者,不必在每次迭代中解析日期,只需将创建的时间类型转换为
DateTime

字符串数据=@”[{
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();
“创建时间:”“2013年9月27日星期五02:00:08+0000”, “id”:1 }, { “创建时间:”“2013年9月28日星期六02:00:08+0000”, “id”:1 }]"; IEnumerable d=(动态)JsonConvert.DeserializeObject(数据); var dates=d.Select(x=>DateTime.ParseExact(x.created_at.ToString(), “ddd-MMM-dd-HH:mm:ss K-yyy”,CultureInfo.InvariantCulture) .Cast().ToList(); var maxDate=dates.Max(); var minDate=dates.Min();