我有一个应用程序接收某些“事件”,由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