通过实例学C#之Queue类

发布于:2024-05-10 ⋅ 阅读:(23) ⋅ 点赞:(0)

简介

集合,可以实现对象的先进先出。


构造函数

Queue<>()

不使用参数创建Queue对象


Queue<>(ICollection col)

使用数组col来创建Queue对象


常用属性

Count

获取 Queue 中包含的元素数。

static void Main(string[] args)
{
    string[] strArray = { "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday" };
    Queue<string> strQue= new Queue<string>(strArray);

    Console.WriteLine("strQue对象的元素数为:"+strQue.Count);
    Console.ReadKey();
}

运行结果:
strQue对象的元素数为:7

常用方法

Clear()

从Queue中移除所有对象。

 static void Main(string[] args)
 {
     string[] strArray = { "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday" };
     Queue<string> strQue= new Queue<string>(strArray);

     Console.WriteLine("strQue对象的元素数为:" + strQue.Count);

     strQue.Clear();
     Console.WriteLine("strQue对象的元素数为:" + strQue.Count);

     Console.ReadKey();
 }

运行结果:
strQue对象的元素数为:7
strQue对象的元素数为:0

Contains(object)

判断元素是否在queue中,是,返回true,否,返回false。

static void Main(string[] args)
{
    string[] strArray = { "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday" };
    Queue<string> strQue= new Queue<string>(strArray);

    bool flag1=strQue.Contains("monday");
    bool flag2 = strQue.Contains("hello");
    Console.WriteLine("flag1="+flag1);
    Console.WriteLine("flag2=" + flag2);

    Console.ReadKey();
}

运行结果:
flag1=True
flag2=False

CopyTo(Array array,Int32 index)

将queue从index开始的元素复制到array中。

static void Main(string[] args)
{
    string[] strArray = { "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday" };
    Queue<string> strQue= new Queue<string>(strArray);

    string[] array =new string[strQue.Count];
    strQue.CopyTo(array, 0);
    foreach (var item in array)
    {
        Console.WriteLine("item="+item);
    }

    Console.ReadKey();
}

运行结果:
item=monday
item=tuesday
item=wednesday
item=thursday
item=friday
item=saturday
item=sunday

Dequeue()

移除并返回位于Queue开始处的对象。

static void Main(string[] args)
{
    string[] strArray = { "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday" };
    Queue<string> strQue= new Queue<string>(strArray);

    string dequeObj=strQue.Dequeue();
    Console.WriteLine("dequeObj="+dequeObj);
    Console.WriteLine("----------------------------");
    Console.WriteLine("queue剩下的元素有:");

    foreach (var item in strQue)
    {
        Console.WriteLine(item);
    }

    Console.ReadKey();
}

运行结果:
dequeObj=monday
----------------------------
queue剩下的元素有:
tuesday
wednesday
thursday
friday
saturday
sunday

Enqueue(object obj)

将对象obj添加到queue的结尾。

static void Main(string[] args)
{
    string[] strArray = { "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday" };
    Queue<string> strQue= new Queue<string>(strArray);

    strQue.Enqueue("hello");
    Console.WriteLine("----------------------------");
    Console.WriteLine("queue剩下的元素有:");

    foreach (var item in strQue)
    {
        Console.WriteLine(item);
    }

    Console.ReadKey();
}

运行结果:
----------------------------
queue剩下的元素有:
monday
tuesday
wednesday
thursday
friday
saturday
sunday
hello

Peek()

与Dequeue()功能类似,但不移除获取的对象。

static void Main(string[] args)
{
    string[] strArray = { "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday" };
    Queue<string> strQue= new Queue<string>(strArray);

    string peekObj = strQue.Peek();
    Console.WriteLine("peekObj=" + peekObj);
    Console.WriteLine("----------------------------");
    Console.WriteLine("queue剩下的元素有:");

    foreach (var item in strQue)
    {
        Console.WriteLine(item);
    }

    Console.ReadKey();
}

运行结果:
peekObj=monday
----------------------------
queue剩下的元素有:
monday
tuesday
wednesday
thursday
friday
saturday
sunday

ToArray()

与CopyTo()功能类似,但不能指定起始元素,只能将queue的所有元素都赋给array。

static void Main(string[] args)
{
    string[] strArray = { "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday" };
    Queue<string> strQue = new Queue<string>(strArray);

    string[] array = new string[strQue.Count];
    array=strQue.ToArray();
    foreach (var item in array)
    {
        Console.WriteLine("item=" + item);
    }

    Console.ReadKey();
}

运行结果:
item=monday
item=tuesday
item=wednesday
item=thursday
item=friday
item=saturday
item=sunday


网站公告

今日签到

点亮在社区的每一天
去签到