gpt4 book ai didi

C# 列表,其中项目具有 TTL

转载 作者:太空狗 更新时间:2023-10-29 18:05:33 26 4
gpt4 key购买 nike

为了一个简单的例子,我想要一个字符串列表。列表中的每一项都应在将其添加到列表后 5 分钟后“过期”。虽然可能没有一种简单的内置方法可以做到这一点,但我希望最终得到一个 API 感觉“正常工作”的数据结构。

您可以按如下方式使用它:

var now = DateTime.now();
var list = new ListWithTTL<string>();
list.add("Bob", now);
list.add("Joe", now.AddMinutes(1));
list.add("Tom", now.AddMinutes(2));
list.add("Tim", now.AddMinutes(2));

立即检查元素会产生

["Bob", "Joe", "Tom", "Tim"]

几分钟后它应该屈服

["Tom", "Tim"]

最终列表应该是空的。

最佳答案

您可以使用 MemoryCache .NET 4 中的类,它允许您在添加项目时指定 TTL。

简单的例子:

MemoryCache cache = new MemoryCache("foo");
cache.Add("bar", "baz", DateTime.Now.AddSeconds(5));
var bar = cache["bar"];//returns "baz"
Thread.Sleep(TimeSpan.FromSeconds(6));
var expired = cache["bar"]; //returns null

虽然不直接为您提供 TTL 列表,但您可以根据您的解决方案调整它,无需自己实现缓存过期。

关于C# 列表,其中项目具有 TTL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7435832/

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