我有一個應用程序接收某些「事件」,由12個字符串和一個DateTime唯一標識。在每個事件都關聯一個字符串的結果。 我需要將這些事件保存在內存中(例如最多8小時),並且如果我再次收到同一事件,能夠知道我已經收到它(在過去的8小時內)。 要存儲的事件將小於1000. 我不能使用外部存儲器,它必須在內存中完成。帶日期時間+字符串鍵的目錄,並自動刪除舊條目
我的想法是使用一個字典,其中的鍵是一個由字符串和日期時間組成的類,該值是結果。
編輯:字符串本身(實際上是MAC地址)不能唯一標識事件,它是MAC和DateTime,這兩個組合是唯一的,這就是爲什麼密鑰必須由兩者組成。 應用程序是一個從客戶端接收特定事件的服務器:該事件在客戶端由客戶端MAC和客戶端日期時間標記(不能使用guid)。 可能發生客戶端重新傳輸相同的數據,並通過檢查MAC /日期時間密鑰的字典,我會知道我已經收到該數據。
然後,每隔一小時(例如),我可以對整個集合進行foreach並刪除datetime超過8小時的所有關鍵字。
你可以提出一個更好的方法來解決問題或我選擇的數據格式嗎?在代碼的性能和清潔方面。 或者更好的方式來刪除舊數據,例如LINQ。
謝謝, 馬蒂亞
你的意思解釋?目錄聽起來像*會使用外部存儲。 – 2013-05-01 16:18:21
哦,上帝,謝謝...是字典當然... – 2013-05-01 16:36:30
爲什麼字符串和日期時間是unqiue?那麼在你的收藏中,這個字符串可以多次出現? – 2013-05-01 16:55:40