c# - 使用 FIFO 进行过滤

标签 c# filter fifo

我想在特定时间内从流中过滤传入的数据包。

例如

在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/

相关文章:

c# - 如何在创建新文件夹或文件时触发 Windows 服务启动

java - 如何用梳状滤波器检测基频?

python - python 过滤列表重复项

list - 我有以下字符串列表,但我想应用过滤器,以便我可以从列表中删除某些项目。如何做到这一点?

c# - 为什么我们不抛出这些异常?

c# - WebAPI Controller 相同的 Action 不同的参数

c - 选择阻止 fifo 读取

mysql - 命名 fifo 管道是否使用磁盘写入和读取?

c - 在 C 中实现链表优先级队列

c# - 带有 Web 配置的 TDD