gpt4 book ai didi

c# - 从字典中删除最旧的项目

转载 作者:行者123 更新时间:2023-11-30 20:07:46 25 4
gpt4 key购买 nike

我正在使用一个负责显示大量位图文件的 WPF 应用程序。将来我计划使用矢量图形实现一个解决方案,但现在我遇到了这个问题:

为了尽量减少我的应用程序从磁盘读取文件的时间,我创建了一个 Dictionary<string, BitmapImage> (其中字符串是图像的文件路径)保存最近使用的图像。如果请求的图像是最近查看过的,程序会从 Dictionary 中获取它。而不是从磁盘。但是,随着查看的图像数量的增加,程序使用的 RAM 量也会增加。所以我的想法是保存有限数量的图像,当从磁盘加载新图像时,覆盖我 Dictionary 中最旧的图像。 .

我将如何以最好的方式完成这项工作?我研究过使用 SortedDictionary但不知道如何写 IComparer因为既不是 keysitems有关于它们被添加的时间/顺序的任何信息。

会保留一个单独的 SortedDictionary<DateTime, string>DateTime IComparer是一个明智的解决方案?这样,当添加新文件时,可以找到最早添加文件的路径,并与我的 Dictionary 中的正确图像匹配。 .不过,这种感觉像是一种高级解决方案。有任何被忽视或内置的解决方案吗?

最佳答案

听起来你想要一个 least recently used (LRU) cache (“首先丢弃最近最少使用的项目”)。网络上有一些实现:

关于c# - 从字典中删除最旧的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8048478/

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