我想在特定时间内从流中过滤传入的数据包。
例如
在5秒内过滤掉所有的“A”
10:00:00 "A" <- show
10:00:01 "A" <- don't show
10:00:02 "B" <- show
10:00:03 "A" <- don't show
10:00:06 "A" <- show
我想过用一种 FIFO 来实现它。
您认为最好的解决方案是什么?
我正在使用 c#、.net 3.5
最佳答案
我看不到 FIFO 的好处。拿一个字典,其中字符串(“A”等)是键并存储忽略时间(例如 DateTime.Now.AddSeconds(5)
,或者如果你害怕由于问题而导致的问题,则使用滴答计算机时间的变化)。每当你得到一个新项目时,检查一下你的词典中是否有它。如果是,比较过期时间;如果尚未达到,请忽略该项目。在所有其他情况下,保留该项目并将新的过期时间存储在字典中。
关于c# - 使用 FIFO 进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2263381/