我有一个接收某些“事件”的应用程序,由 12 个字符的字符串和 DateTime 唯一标识。每个事件都关联一个字符串结果。我需要将这些事件保存在内存中(最多例如 8 小时),并且能够在我第二次收到相同事件时知道我已经收到它(在过去 8 小时内) . 要存储的事件将少于 1000。我不能使用外部存储,它必须在内存中完成。
我的想法是使用字典,其中键是由字符串和日期时间组成的类,值是结果。
编辑:字符串本身(实际上是 MAC 地址)不能唯一地标识事件,它是 MAC 和 DateTime,这两者结合起来是唯一的,这就是为什么密钥必须由两者形成的原因。应用程序是从客户端接收特定事件的服务器:该事件在客户端上由客户端 MAC 和客户端日期时间标记(不能使用 guid)。客户端可能会重新传输相同的数据,并且通过检查该 MAC/Datetime 键的字典,我会知道我已经收到了该数据。
然后,每小时(例如),我可以遍历整个集合并删除日期时间超过 8 小时的所有键。
你能建议一个更好的方法来解决这个问题或我选择的数据格式吗?在代码的性能和清洁度方面。或者是删除旧数据的更好方法,例如使用 LINQ。
谢谢, 马蒂亚