Dictionary<DateTime, int>
からデータをフィルタリングして、後続のDateTime's
の差が1分以上の要素のみを取得する必要があります。c#linq filter Dictionary <DateTime、int>定義済みの最小時間差で
例えば、辞書に私はこのようなデータのペアかもしれない:
var pairs = new Dictionary<DateTime, int>()
{
{ new DateTime(2010, 01, 20, 19, 05, 00), 10 },
{ new DateTime(2010, 01, 20, 19, 05, 19), 11 },
{ new DateTime(2010, 01, 20, 19, 05, 49), 12 },
{ new DateTime(2010, 01, 20, 19, 06, 05), 13 },
{ new DateTime(2010, 01, 20, 19, 07, 05), 14 },
{ new DateTime(2010, 01, 20, 19, 07, 55), 15 },
};
そして、私はフィルタリングの結果として、希望はある:辞書に
<2010-01-20 19:05:00, 10>
<2010-01-20 19:06:05, 13>
<2010-01-20 19:07:05, 14>`
DateTime
キーが上昇しています注文する必要はありませんが、多くのデータが処理されるため、かなり効率的である必要があります。
私にLINQクエリの素敵な部分を紹介してもらえますか?
を '辞書内のDateTimeキーは昇順です。ドキュメントによれば、「アイテムが返される順序は未定義です。」(https://msdn.microsoft.com/en-us/library/xfhwa508(v=vs.110).aspx)。それは今日働く、明日中断することができる。 –
また、効率的になりたいのであれば、Linqは通常正しい解決策ではありません –
時間が分単位で配列の配列が必要ですか? – LiverpoolOwen