c# - 在 C# 中保存固定数量数据的最佳类

标签 c#

假设我有很多字符串需要处理,我喜欢将最后处理的字符串放在内存中以避免重复处理它。我只需要记录最后 100 个字符串,这意味着如果我使用

List<string> oldStringoldString.Add() 之后, 我必须使用 oldString.TakeFromEnd(100)如您所知,TakeFromEnd()不存在,这意味着如果我走这条路,我必须写很多东西来保持 100 的长度 List我可以想象这会导致糟糕的表现。

请问,系统类中有没有预制的,只保存固定数量的数据,并在添加新数据时丢弃最旧的数据。谢谢

[编辑]

Queue<string>确实很好,用.Any()检查是否已经存在,使用 .Enqueue()要添加(不是下面回答的 Equeue,它射出一个 N),使用 .Count检查长度,.Dequeue()删除第一个添加的。

最佳答案

使用 Queue

想法是:

public void addToQueue(Object obj){
    if (myQueue.Count > 100)
        myQueue.Dequeue();

    myQueue.Equeue(obj);
}

这大致是您需要使用的代码草图,但您会明白这一点。

然后您将拥有一个仅包含最新 100 条记录的队列

关于c# - 在 C# 中保存固定数量数据的最佳类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11758306/

相关文章:

c# - 如何在自定义类构造函数中注入(inject)单例并使用它 | .NET 核心 2

c# - 将结构转换为通用接口(interface)时是否有装箱/拆箱?

c# - 如何从 Program.cs main 方法更改 WinForms 标签的内容?

c# - 服务器因 ASP.NET-Page (C#) 而崩溃

c# - 快速设置 DataGridView 行高

c# - Generic SortedList,如何找到大于搜索键的第一个元素的索引?

c# - 如何拦截 "Could not load file or assembly"?

c# - 为什么当播放器对象被破坏时我的背景音乐停止播放?

c# - 在 Quartz.NET 中修改 JobDataMap

c# - 同一整数可以有多个枚举值吗?