一、Queue的遍历方法常用的有两种,网上大部分的遍历方法如下:
using System;
using System.Collections;
using System.Collections.Generic;
namespace Queue_Test
{
internal class Program
{
static void Main(string[] args)
{
Queue queue = new Queue();
queue.Enqueue("hello");
queue.Enqueue(true);
queue.Enqueue(9.9);
foreach (var item in queue)
{
Console.WriteLine(item);
}
Console.WriteLine("长度:" + queue.Count);
Console.ReadKey();
}
}
第一种遍历方法适用于将数据直接丢入队列中。如果丢入队列的数据是个类,那又该如何遍历访问?下面上第二种。
定义两个不同的类变量值丢入队列中。
mymmeber newmem =new mymmeber();
Queue queue = new Queue();
newmem.Name = "fsa";
newmem.Value = "sadfsa";
queue.Enqueue(newmem);
mymmeber newmem1 = new mymmeber();
newmem1.Name = "ssd";
newmem1.Value = "sadfsa";
queue.Enqueue(newmem1);
建立一个IEnumerator实例 it指向queue对象。这个有点像c++中的迭代器。
然后it迭代访问,过程中将it中的current 重命名为mymmeber。使得可以以mymmeber的对象实例访问其中的数据。
IEnumerator it = queue.GetEnumerator();
while (it.MoveNext())
{
mymmeber them = it.Current as mymmeber;
Console.WriteLine(them.Name);
Console.WriteLine(them.Value);
}
这是定义的数据类,里面包含两个string变量 Name和Value。
class mymmeber
{
public string Name;
public string Value;
public string PersonName{ get { return Name; }set { Name = value; } }
public string PersonValue { get { return Value; } set { Value = value; } }
}