2013-09-27 3 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!

Смежные вопросы