将列表转换为队列c#

时间:2015-03-08 15:07:17

标签: c# .net vb.net

是否可以将List转换为Queue元素? 到目前为止,我使用下面的代码,但如果在c#

中有一个构建方法,则不需要添加额外的循环
    queue1.Clear();
foreach (int val in list1)  {queue1.Enqueue(val);}

任何解决方案?

1 个答案:

答案 0 :(得分:8)

Queue<T>有一个overload which takes an IEnumerable<T>。请注意,无论如何它都会迭代它:

var queue = new Queue<string>(myStringList);

这就是内部的作用:

public Queue(IEnumerable<T> collection)
{
    _array = new T[_DefaultCapacity];
    _size = 0;
    _version = 0;

    using(IEnumerator<T> en = collection.GetEnumerator()) 
    {
        while(en.MoveNext()) {
            Enqueue(en.Current);
        }
    }            
}