2013-09-27 200 views
1

我有下面的代碼返回動態對象。我想查詢它們並獲取最短日期和最長日期,保存在created_at中。我將如何查詢?查詢最大值和最小值的動態對象列表

目前我正在使用foreach循環,並進行比較和設置日期。有沒有更高效的方法來做到這一點,我將如何去做這件事?我知道它的linq,但我不知道如何真正做到這一點。

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

回答

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(); 
0

您的dynObj似乎是一個數組或列表的權利?

你可以使用LINQ查詢像

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

或者,而不是分析在每個迭代的日期,只要你created_at的類型轉換爲DateTime

相關問題