我有以下代码返回动态对象。我想查询它们并获取最小日期和最大日期,该日期保存在created_at
中。我该如何查询?
目前我正在使用foreach
循环,并进行比较和设置日期。有没有更有效的方法来做到这一点,我将如何做到这一点?我知道它的linq,但无法理解如何实际做到这一点的概念。
dynamic dynObj = JsonConvert.DeserializeObject(Data);
{
"created_at": "Fri Sep 27 02:00:08 +0000 2013",
"id":
},
答案 0 :(得分:2)
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();
答案 1 :(得分:0)
您的dynObj
似乎是一个数组或列表吗?
你可以使用像
这样的linq查询list.Min(p => DateTime.Parse(p.created_at));
或者不是在每次迭代中解析日期,只需将created_at的类型转换为DateTime
!