如何保留列表的最新X元素

Mic*_*eth 1 c# arrays collections

我需要使用一个数据结构来保存列表的最新X元素.一位同事给了我这个解决方案:

        int start = 0;
        const int latestElementsToKeep = 20;
        int[] numbers = new int[latestElementsToKeep];
        for (int i = 0; i < 30; i++)
        {
            numbers[start] = i;
            if (start < numbers.Length - 1)
            {
                start++;
            }
            else
            {
                start = 0;
            }
        }
Run Code Online (Sandbox Code Playgroud)

所以在运行之后,数字数组的数字为19-29(最新的20个数字).

这很好,但在现实世界中很难使用它.有更简单的方法吗?

The*_*uin 6

这看起来像一个非常标准的循环缓冲区.我唯一的建议是为它创建一个类或下载一个可用的库.在Google搜索结果的顶部附近似乎有一些看上去很有希望的东西.