1

動的オブジェクトを返す次のコードがあります。それらすべてにクエリを実行して、に保持されている最小日付と最大日付を取得したいと思いますcreated_at。これをどのように照会しますか?

現在、foreachループを使用して比較を行い、日付を設定しています。これを行うためのより効率的な方法はありますか?どうすればこれを行うことができますか? 私はそのlinqを知っていますが、実際にそれを行う方法の概念に頭を悩ませています。

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

2 に答える 2

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();
于 2013-09-27T13:46:08.577 に答える
0

あなたdynObjは配列またはリストのようですよね?

次のようなlinqクエリを使用できます

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

または、各反復で日付を解析する代わりに、単に created_at の型をDateTime!

于 2013-09-27T13:45:07.447 に答える