gpt4 book ai didi

c# - C# 中的老化数据结构

转载 作者:行者123 更新时间:2023-11-30 20:14:47 26 4
gpt4 key购买 nike

我想要一个数据结构,允许查询过去 X 分钟内有多少项目。一个项目可能只是一个简单的标识符或一个更复杂的数据结构,最好项目的时间戳将在项目中,而不是存储在外部(作为哈希或类似的,不希望有多个项目有相同的问题时间戳)。

到目前为止,我似乎可以使用 LINQ 轻松过滤时间戳大于给定时间的项目并聚合计数。尽管我还在犹豫要不要将 .NET 3.5 特定的东西应用到我的生产环境中。对于类似的数据结构还有其他建议吗?

我感兴趣的另一部分是旧数据的老化,如果我只要求少于 6 小时前的项目计数,我想要任何比这更早的数据从我的数据结构中删除,因为这可能是一个长时间运行的程序。

最佳答案

为此可以使用一个简单的链表。

基本上你在末尾添加新项目,并从一开始就删除太旧的项目,这是一种廉价的数据结构。

示例代码:

list.push_end(new_data)
while list.head.age >= age_limit:
list.pop_head()

如果列表很忙,需要一次切掉比一个更大的部分,那么我同意 dmo ,使用树结构或类似的东西,允许在更高层次上进行修剪。

关于c# - C# 中的老化数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com