Как перечислить список элементов на С#?

Используя списки, я использую

List<int> list = new List<int>();
list.AddRange(otherList);

Как это сделать с помощью очереди?, эта коллекция не имеет метода AddRange.

Queue<int> q = new Queue<int>();
q.AddRange(otherList); //does not exists

Ответы

Ответ 1

Queue имеет конструктор, который принимает ICollection. Вы можете передать свой список в очередь, чтобы инициализировать его теми же элементами:

var queue = new Queue<T>(list); 

в вашем случае используйте следующим образом

Queue<int> ques = new Queue<int>(otherList);

Ответ 2

otherList.Foreach(o => q.Enqueue(o));

Вы также можете использовать этот метод расширения:

    public static void AddRange<T>(this Queue<T> queue, IEnumerable<T> enu) {
        foreach (T obj in enu)
            queue.Enqueue(obj);
    }

    Queue<int> q = new Queue<int>();
    q.AddRange(otherList); //Work!

Ответ 3

Вы можете инициализировать список очередей:

Queue<int> q = new Queue<int>(otherList);