web-dev-qa-db-ja.com

C#でアイテムのリストをエンキューする方法

使用するリストの使用

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

キューを使用してこれを行う方法?、このコレクションにはAddRangeメソッドがありません。

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

Queueには、ICollectionを受け取るコンストラクターがあります。リストをキューに渡して、同じ要素でリストを初期化できます。

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

あなたのケースでは次のように使用します

Queue<int> ques = new Queue<int>(otherList);
11
Thilina H
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!
25
Ahmed KRAIEM

キューリストを初期化できます。

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