• C#的Queue 类使用说明


    一:Queue 类简单说明

    1)表示对象的先进先出集合
    2)当您需要对各项进行先进先出的访问时,则使用队列。当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队。

    二:Queue 类的构造函数

    构造函数构造函数说明
    Hashtable()使用默认的初始容量、加载因子、哈希代码提供程序和比较器来初始化 Hashtable 类的新的空实例。
    Hashtable(IDictionary)通过将指定字典中的元素复制到新的 Hashtable 对象中,初始化 Hashtable 类的一个新实例。 新 Hashtable 对象的初始容量等于复制的元素数,并且使用默认的加载因子、哈希代码提供程序和比较器。
    Hashtable(IDictionary, IEqualityComparer)通过将指定字典中的元素复制到新的 Hashtable 对象中,初始化 Hashtable 类的一个新实例。 新 Hashtable 对象的初始容量等于复制的元素数,并且使用默认加载因子和指定的 IEqualityComparer 对象。
    Hashtable(IDictionary, Single)通过将指定字典中的元素复制到新的 Hashtable 对象中,初始化 Hashtable 类的一个新实例。 新 Hashtable 对象的初始容量等于复制的元素数,并且使用指定的加载因子、默认哈希代码提供程序和默认比较器。

    三:Queue 类的属性

    属性属性说明
    Count获取 Queue 中包含的元素数。
    IsSynchronized获取一个值,该值指示是否同步对 Queue 的访问(线程安全)。
    SyncRoot获取可用于同步对 Queue 的访问的对象。

    四:Queue 类的方法

    属性属性说明
    Clear()从 Queue 中移除所有对象。
    Clone()创建 Queue 的浅表副本。
    Contains(Object) 确定某元素是否在 Queue 中。
    Enqueue() 将对象添加到 Queue 的结尾处。
    Dequeue()移除并返回位于 Queue 开始处的对象(从队列中,取出排在第一位的元素。)
    CopyTo(Array, Int32)从指定数组索引开始将 Queue 元素复制到现有一维 Array 中。
    Equals(Object)确定指定对象是否等于当前对象。
    GetEnumerator()返回循环访问 Queue 的枚举数。
    GetHashCode()作为默认哈希函数。
    GetType()获取当前实例的 Type。
    MemberwiseClone()创建当前 Object 的浅表副本。
    Peek()返回位于 Queue 开始处的对象但不将其移除。
    Synchronized(Queue)返回将包装原始队列并且是线程安全的新的 Queue。
    ToArray() 将 Queue 元素复制到新数组。
    ToString()返回表示当前对象的字符串。
    TrimToSize()将容量设置为 Queue 中元素的实际数目。

    1: Queue.Enqueue()和Dequeue() 方法使用举例

    1)作用:Enqueue将对象添加到 Queue 的结尾处。Dequeue则是从 Queue 的开始处移除的对象。
    2)语法:

    public virtual void Enqueue (object obj);
    public virtual object Dequeue ();
    

    3)使用举例:

    // 创建并初始化源队列.
    Queue mySourceQ = new Queue();
    mySourceQ.Enqueue("one");
    mySourceQ.Enqueue("two");
    mySourceQ.Enqueue("three");
    mySourceQ.Enqueue("four");
    
    // 显示队列.
    Console.Write("Queue values:");
    foreach (Object obj in mySourceQ)
    {
        Console.Write("    {0}", obj);
    }
        
    // 从队列中删除元素.
    Console.WriteLine("\r\n(Dequeue)\t{0}", mySourceQ.Dequeue());
    
    // 显示队列.
    Console.Write("Queue values:");
    foreach (Object obj in mySourceQ)
    {
        Console.Write("    {0}", obj);
    }
    

    4)运行结果:

    Queue values: one two three four
    (Dequeue) one
    Queue values: two three four

    2: Queue.CopyTo(Array, Int32) 方法使用举例

    1)作用:将 Queue 元素复制到指定数组索引开始的一维 Array 中。
    2)语法:

    public virtual void CopyTo (Array array, int index);
    

    3)使用举例:

    // 创建并初始化源队列.
    Queue mySourceQ = new Queue();
    mySourceQ.Enqueue("one");
    mySourceQ.Enqueue("two");
    mySourceQ.Enqueue("three");
    mySourceQ.Enqueue("four");
    // 创建并初始化一维目标数组.
    
    Array myTargetArray = Array.CreateInstance(typeof(string), 15);
    myTargetArray.SetValue("Good", 0);
    myTargetArray.SetValue("bad", 1);
    myTargetArray.SetValue("yes", 2);
    myTargetArray.SetValue("no", 3);
    
    // 将整个源队列复制到目标数组,从索引2开始.
    mySourceQ.CopyTo(myTargetArray, 2);
    foreach (Object myObj in myTargetArray)
    {
        Console.Write("{0}{1}", ' ', myObj);
    }
    

    4)运行结果:

    Good bad one two three four

    3:Queue.ToArray 方法使用举例

    1)作用:将 Queue 元素复制到新数组。
    2)语法:

    public virtual object[] ToArray ();
    

    3)使用举例:

    // 创建并初始化源队列.
    Queue mySourceQ = new Queue();
    mySourceQ.Enqueue("one");
    mySourceQ.Enqueue("two");
    mySourceQ.Enqueue("three");
    mySourceQ.Enqueue("four");
    
    // 将整个源队列,复制到新的标准数组中。
    Object[] myStandardArray = mySourceQ.ToArray();
    
    foreach (Object myObj in myStandardArray)
    {
        Console.Write("{0}{1}", ' ', myObj);
    }
    
    

    4)运行结果:

    one two three four
  • 相关阅读:
    嵌入式编程规范及注意事项
    【牛客刷题】带你在牛客刷题第四弹(C/C++语言基础)
    浅梳理JS对字符串的操作
    大数据——Spark SQL
    Android + Bmob 实现用户注册登录
    http2流分片data数据合并-linux xxd方法
    读书笔记:《高频交易员》
    【计算机组成原理】指令系统(一)—— 指令格式
    相机图像质量研究(32)常见问题总结:图像处理对成像的影响--振铃效应
    数据增强方法汇总
  • 原文地址:https://blog.csdn.net/u010033786/article/details/126924486