日期:2014-05-20  浏览次数:20757 次

Queue队列实现了IEnumerable接口吗
今天在看一篇关于Linq的文章时说,Queue队列没有实现IEnumerable接口,需要使用它的Cast方法把它转换为IEnumerable<T>类型,然后再使用Linq操作

但是我看msdn上,写着
public class Queue<T> : IEnumerable<T>, ICollection, 
IEnumerable

所以我觉得Queue应该是实现了IEnumerable接口啊

望有经验的前辈进一步确定 ?

------解决方案--------------------
msdn上自己的例子都可以使用foreach


 Queue<string> numbers = new Queue<string>();
        numbers.Enqueue("one");
        numbers.Enqueue("two");
        numbers.Enqueue("three");
        numbers.Enqueue("four");
        numbers.Enqueue("five");

        // A queue can be enumerated without disturbing its contents.
        foreach( string number in numbers )
        {
            Console.WriteLine(number);
        }


以上代码来自:
http://msdn.microsoft.com/en-us/library/7977ey2c(v=vs.80).aspx

要不就是他说错了,要不就是他说的不是Queue<T>
------解决方案--------------------
Queue和Queue<T>不是一个类,IEnumerable和IEnumerable<T>也不是一个接口。不过Queue和Queue<T>都实现了IEnumerable接口。