मैं उसी पंक्ति में एक C # सूची को कैसे आरंभ कर सकता हूं जिसे मैं घोषित करता हूं। (IEnumerable स्ट्रिंग संग्रह उदाहरण)


107

मैं अपना टेस्टकोड लिख रहा हूं और मैं नहीं चाहता कि मैं लिखें:

List<string> nameslist = new List<string>();
nameslist.Add("one");
nameslist.Add("two");
nameslist.Add("three");

मुझे लिखना अच्छा लगेगा

List<string> nameslist = new List<string>({"one", "two", "three"});

हालांकि {"एक", "दो", "तीन"} "IEnumerable स्ट्रिंग संग्रह" नहीं है। मैं IEnumerable स्ट्रिंग संग्रह "का उपयोग करके इसे एक पंक्ति में कैसे आरंभ कर सकता हूं"?

जवाबों:


168
var list = new List<string> { "One", "Two", "Three" };

अनिवार्य रूप से वाक्य रचना है:

new List<Type> { Instance1, Instance2, Instance3 };

जिसे संकलक द्वारा अनुवादित किया जाता है

List<string> list = new List<string>();
list.Add("One");
list.Add("Two");
list.Add("Three");

मुझे यह नो-कोष्ठक विधि पसंद है, किस सी # संस्करण के साथ शुरू हुआ?
सिल्वरबैकनेट

9
यह उस में काफी अनुवादित नहीं है, कम से कम सामान्य रूप से नहीं। वैरिएबल को असाइनमेंट सभी कॉल किए जाने के बाद होता Addहै - यह ऐसा है जैसे यह एक अस्थायी वैरिएबल का उपयोग करता है, list = tmp;अंत में। यह महत्वपूर्ण हो सकता है यदि आप एक चर के मूल्य को पुन: सौंप रहे हैं ।
जॉन स्कीट

.NET 3 के साथ ऑटोमैटिक प्रॉपर्टीज़ एंड ऑब्जेक्ट इनिशियलाइज़र्स को पेश किया गया था, मेरा मानना ​​है कि यह वही फ्रेमवर्क वर्जन है, जो LINQ को सपोर्ट करने के लिए अपडेटेड कंपाइलर है।
मैथ्यू एबट

@ जॉन, चीयर्स, मैं उस हिस्से को कभी नहीं जान पाया। : डी
मैथ्यू एबट

@Jon Skeet: "... यह महत्वपूर्ण हो सकता है यदि आप किसी वैरिएबल के मान को पुन: असाइन कर रहे हैं।" क्या आप इस टिप्पणी पर कुछ और बता सकते हैं?
टोनी

17

कोड को बदलें

List<string> nameslist = new List<string> {"one", "two", "three"};

या

List<string> nameslist = new List<string>(new[] {"one", "two", "three"});

दूसरी पंक्ति "सूची <string> नाम सूची = नई सूची <string> (नया [] {" एक "," दो "," तीन "}) का उपयोग करने का उद्देश्य क्या है? हम इसका उपयोग कब कर सकते हैं? इसके अलावा दूसरे सिंटैक्स में "नया [] {...}" का क्या अर्थ है? कोष्ठक के साथ नए कीवर्ड का उपयोग क्यों किया जाता है? ???
टोनी




3

यह निर्भर करता है कि आप C # के किस संस्करण का उपयोग कर रहे हैं, संस्करण 3.0 के बाद से आप इसका उपयोग कर सकते हैं ...

List<string> nameslist = new List<string> { "one", "two", "three" };

1

मुझे लगता है कि यह int, long और string values ​​के लिए काम करेगा।

List<int> list = new List<int>(new int[]{ 2, 3, 7 });


var animals = new List<string>() { "bird", "dog" };

0

ये एक तरीका है।

List<int> list = new List<int>{ 1, 2, 3, 4, 5 };

यह एक और तरीका है।

List<int> list2 = new List<int>();

list2.Add(1);

list2.Add(2);

वही तार के साथ जाता है।

उदाहरण के लिए:

List<string> list3 = new List<string> { "Hello", "World" };
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.