2011-09-27 5 views
7

यह:स्टैक या कतार के लिए एक शाब्दिक प्रारंभिक निर्दिष्ट कैसे करें?

List<string> set = new List<string>() { "a","b" }; 

ठीक काम करता है, लेकिन:

...does not contain a definition for 'Add' 

जो मुझे क्यों संकलक पर्याप्त गूंगा के लिए जोड़ें पूछने के लिए था पड़ता है:

Stack<string> set = new Stack<string>() { "a","b" }; 
Queue<string> set = new Queue<string>() { "a","b" }; 

साथ विफल रहता है।

तो, एक कतार/स्टैक कन्स्ट्रक्टर में एक प्रारंभिक होना चाहिए?

उत्तर

11

संग्रह प्रारंभकर्ता एक कंपाइलर सुविधा है जो आपके द्वारा पास की जाने वाली प्रत्येक आइटम के साथ Add विधि को कॉल करती है। यदि Add विधि नहीं है, तो आप इसका उपयोग नहीं कर सकते हैं। धन्यवाद -

var stack = new Stack<int>(new [] { 1, 2, 3 }); 
+0

अच्छा वैकल्पिक हल:

इसके बजाय, आप Stack या Queue निर्माता है कि एक IEnumerable<T> लेता कॉल कर सकते हैं। – ChrisJJ

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