我需要過濾來自Dictionary<DateTime, int>
的數據以獲取僅後面的DateTime's
之間的差異爲1分鐘或更長的元素。c#linq過濾器字典<日期時間,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鍵按升序排列,所以沒有必要reorder'你還是應該對它們進行排序。根據文檔,「返回項目的順序未定義。」(https://msdn.microsoft.com/en-us/library/xfhwa508(v=vs.110).aspx)。它今天有效,明天可能會突破。 –
另外,如果你想要高效,Linq通常不是正確的解決方案 –
那麼你想要一個數組的數組,其中的時間是分開的? – LiverpoolOwen