क्या मैं NameValueCollection के साथ संग्रह आरंभीकरण का उपयोग कर सकता हूं?


92

क्या C # कलेक्शन इनिशियल सिंटैक्स का उपयोग करके NVC को इनिशियलाइज़ करने का एक तरीका है:

NameValueCollection nvc = new NameValueCollection() { ("a", "1"), ("b", "2") };

धन्यवाद

जवाबों:


137

हाँ; बस कोष्ठक के बजाय ब्रेसिज़ का उपयोग करता है।

var nvc = new NameValueCollection { {"a", "1"}, {"b", "2"} };

आप Addसिंटैक्स का उपयोग करके मापदंडों के मनमाने सेट के साथ तरीकों को कॉल कर सकते हैं ।


तुरंत जवाब देने के लिए धन्यवाद!
— फासला

ऑब्जेक्ट और कलेक्शन पर MSDN पेज इनिशियलाइज़ेशनNameValueCollection इस सिंटैक्स को स्वीकार करता है कि वास्तव में इसकी रूपरेखा क्यों है : msdn.microsoft.com/en-us/library/bb384062.aspx
— user7116

3
@ सिक्स: वास्तव में, यह इस वाक्यविन्यास का उल्लेख भी नहीं करता है।
— SLACs

4
अच्छी पकड़, यह Dictionary<K,V>प्रारंभिककरण के लिए पृष्ठ में दफन किया गया प्रतीत होता है , "या कोई भी संग्रह जिसकी ऐड विधि कई मापदंडों को लेती है," msdn.microsoft.com/en-us/library/bb531208.aspx
— user7116

8

आप संग्रह आरंभीकरण का उपयोग कर सकते हैं जिसमें सब कुछ Addविधि है। हाँ, बतख टाइपिंग। यदि Addअधिक है तो 1 पैरा घुंघराले ब्रैकेट में ट्यूपल डाल दें:

NameValueCollection nvc = new NameValueCollection() { { "a", "1" }, { "b", "2" } };

3
काफी नहीं; इसे लागू करना चाहिए IEnumerable।
— SLACs

3
औजार System.Collections.IEnumerableऔर Addकम से कम 1 तर्क लेने की एक विधि है।
— user7116

1
@ एसएलएस हाँ, मैं इसके बारे में भूल गया। Btw यह अजीब आवश्यकता है, क्योंकि यह निर्माण IEnumerable के तरीकों का उपयोग नहीं करता है।
— एंड्री

1
क्योंकि आधार वर्ग NameObjectCollectionBaseजो उपयोग करता है IEnumerable। यह मेरे लिए एक सबक है इससे पहले कि आप यह जांचना चाहते हैं कि उपयोग किया गया कार्यान्वयन क्या था सुनिश्चित करें कि आप सभी आधार प्रकार की जांच कर रहे हैं System.Object।
— CallMeLaNN
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.