将列表转换为队列c#

Sta*_*tis 5 .net c# vb.net

是否可以将List转换为Queue元素?到目前为止,我使用下面的代码,但如果c#中有一个构建方法,则不需要添加额外的循环

queue1.Clear();

foreach (int val in list1)
{
     queue1.Enqueue(val);
}
Run Code Online (Sandbox Code Playgroud)

任何解决方案

Yuv*_*kov 12

Queue<T>有一个超载,需要一个IEnumerable<T>.请注意,无论如何它将迭代它:

var queue = new Queue<string>(myStringList);
Run Code Online (Sandbox Code Playgroud)

这就是它内部的作用:

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);
        }
    }            
}
Run Code Online (Sandbox Code Playgroud)

  • /sf/ask/242457281/ (3认同)