gpt4 book ai didi

c# - 通用对象缓存

转载 作者:太空狗 更新时间:2023-10-30 01:03:05 24 4
gpt4 key购买 nike

我正在做一个项目,我计划使用 Redis 作为持久性数据存储,但是手头的任务是,我正在做一个通用的对象缓存。作为 LINQ 的 super 粉丝,我已经开始设计一个支持此功能的缓存。

    public ConcurrentBag<Object> Cache = new ConcurrentBag<object>();

public List<T> FindBy<T>(Func<T, bool> predicate) where T : class
{
var tmp = new List<T>();

foreach (var i in Cache)
{
try
{
T obj = i as T;

if (obj != null)
tmp.Add(obj);
}
catch { }
}

return tmp.Where(predicate).ToList();
}

我担心当对象缓存变大时它会变得低效。 (我估计有 500k-1m 个物体)

我希望可以使用这样的东西

    public ConcurrentBag<Object> Cache = new ConcurrentBag<object>();

public List<T> FindBy<T>(Func<T, bool> predicate) where T : class
{
return Cache.Where<T>(predicate).ToList();
}

希望我在这里没有偏离轨道?欢迎任何建议:)

最佳答案

散列您的通用类型并保存特定类型的列表..类似于:

Dictionary<Type,List<T>>

然后根据需要按类型键和查询获取值

关于c# - 通用对象缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30818784/

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