C# net Queue 固定长度不自动扩展大小

C# net Queue  固定长度 不自动扩展大小 不可变大小

C# net 队列 固定长度 不自动扩展大小 不可变大小

 

新建文件 QueueLength.cs

拷贝下面的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace System.Collections.Generic
{
    /// <summary>
    /// 表示对象的先进先出集合并固定长度
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public class QueueLength<T> : Queue<T>
    {
        int length = 1;

        /// <summary>
        /// 初始化类的新实例,并指定长度
        /// </summary>
        /// <param name="length">长度</param>
        public QueueLength(int length) : base(length)
        {
            this.length = length;
        }

        /// <summary>
        /// 将对象添加到结尾处
        /// </summary>
        /// <param name="item">要添加的对象</param>
        public new void Enqueue(T item)
        {
            if (base.Count == length)
                base.Dequeue();

            base.Enqueue(item);
        }

    }
}

  

新建控制台拷贝如下代码测试

            QueueLength<int> aaaa = new QueueLength<int>(3);
            aaaa.Enqueue(1);
            aaaa.Enqueue(2);
            aaaa.Enqueue(3);
            aaaa.Enqueue(4);
            aaaa.Enqueue(5);

            Console.WriteLine(string.Join(",", aaaa));

  

输出结果为:

 

 完成

 

posted @ 2022-01-07 15:23  爱恋的红尘  阅读(2141)  评论(4编辑  收藏  举报