2013-10-02 13 views
14

kullanma listeleri Ben Queue'yi kullanarak bunu yapmak için nasıl C# içindeki öğelerin bir listesini nasıl eklenir?

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

kullanmak ?, bu Koleksiyon bir AddRange Yöntemi yoktur.

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! 

cevap

8

Queue bir ICollection yılında alan yapıcıya sahip

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

Ayrıca bu uzatma yöntemi kullanabilirsiniz. Aynı elemanlar ile başlatmak için sıraya listenizi geçirebilirsiniz:

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

davanız kullanımda

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

kullanabilirsiniz şöyle 'otherList.Foreach (q.Enqueue)' boks olmadan başka bir lambda ifadesine – Adassko

5

Sen kuyruğu listesini başlatabilir:

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