2010-08-11 15 views

उत्तर

39

Queue एक निर्माता है कि एक ICollection में लेता है। आप एक ही तत्वों के साथ यह प्रारंभ करने के लिए कतार में अपनी सूची पारित कर सकते हैं:

var queue = new Queue<T>(list); // where 'T' is the lists data type. 
+0

गैर-जेनेरिक कतार है? – zerkms

+0

अच्छा पकड़ो। वास्तव में एक गैर-जेनेरिक कतार है, लेकिन आप सामान्य संस्करण चाहते हैं। मैंने अपना जवाब अपडेट कर लिया है। –

+0

@zerkms: 'System.Collections' नेमस्पेस में एक गैर-जेनेरिक 'कतार' श्रेणी है: http://msdn.microsoft.com/en-us/library/system.collections.queue.aspx – Rich

3
var q = new Queue<Object>(); 
for(int i = 0; i < list.Count; i++) q.Enqueue(list[i]); 

यह मानते हुए कि "एक ही आदेश" का अर्थ है कि कतार से निकाली जाने वाली पहली वस्तु सूची [0] होनी चाहिए।

यह विपरीत मतलब है, तो बस रिवर्स पाश का उपयोग करें: for(int i = list.Count-1; i >= 0; i--)

0
var mylist = new List<int> {1,2,3}; 
var q = new Queue<int>(mylist); 
4

क्या आप मतलब है "एक ही आदेश?"

यदि आप करते हैं इस:

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

फिर कतार सूची, जिसका अर्थ है कि Dequeue के लिए एक कॉल तत्व है कि पहले list[0] में रहते था वापसी होगी के रूप में एक ही क्रम में अधिक प्रगणित कर दिया जाएगा।

यदि आप करते हैं इस:

var queue = new Queue<object>(list.AsEnumerable().Reverse()); 

फिर कतार सूची, जिसका अर्थ है कि Dequeue के लिए एक कॉल तत्व है कि पहले list[list.Count - 1] में रहते था वापसी होगी के रूप में विपरीत क्रम में अधिक प्रगणित कर दिया जाएगा।

+0

+1। –

संबंधित मुद्दे