2012-02-10 11 views
5

मैं इस तरह कोड की एक पंक्ति है:सूची की एक सरणी नहीं बनाई जा सकती वस्तुओं

List<string>[] apples = new List<string>()[2]; 

इसका उद्देश्य केवल सूची में ऑब्जेक्ट की श्रृंखला बनाने के लिए है।

Cannot implicitly convert type 'string' to 'System.Collections.Generic.List[]

मैं सूची वस्तुओं (वास्तव में केवल this धागा), हो सकता है क्योंकि की एक सरणी बनाने के विषय पर बहुत ढूँढने में सक्षम नहीं किया गया: जब मैं अपने कोड को संकलित करने का प्रयास करें, इसके बाद के संस्करण लाइन इस त्रुटि उत्पन्न करता है कोई खोज इंजन ब्रैकेट की खोज नहीं करेगा।

क्या उन्हें सूची में एक और सूची में रखने के लिए सूची का संग्रह करने का एकमात्र तरीका है, जैसे नीचे?

List<List<string>> apples = new List<List<string>>(); //I've tried this and it works as expected 

किसी भी सुझाव के लिए धन्यवाद, मैं वास्तव में सिर्फ क्यों कोड की पहली पंक्ति (सूची [] उदाहरण) काम नहीं करता है जानने के लिए उत्सुक हूँ।

+3

सरल गलती, कोष्ठक हटा दें। –

+0

धन्यवाद, मुझे विश्वास नहीं है कि मैंने कोशिश करने के लिए नहीं सोचा था। –

+0

इसे दिलचस्प बनाएं, पूछें कि त्रुटि संदेश इतना लुभावना क्यों है। –

उत्तर

6

आप ऐसा कर सकते हैं। वाक्य रचना होगा:

List<string>[] apples = new List<string>[2]; 

ध्यान दें कि यह केवल संदर्भ की एक सरणी आवंटित करता है - आप इससे पहले कि आप उन्हें इस्तेमाल वास्तव में अलग-अलग सूची तत्वों का निर्माण करने की आवश्यकता होगी:

List<string>[] apples = new List<string>[2]; 
apples[0] = new List<string>(); 
apples[1] = new List<string>(); 

वैकल्पिक रूप से, आप उपयोग कर सकते हैं संग्रह प्रारंभिक वाक्यविन्यास (निश्चित तत्वों की छोटी संख्या के लिए अच्छी तरह से काम करता है), यानी:

List<string>[] apples = new[] { new List<string>(), new List<string>() }; 
+0

धन्यवाद, मुझे 'संग्रह प्रारंभिक वाक्यविन्यास' के बारे में पता नहीं था, मैं देख सकता हूं कि यह कैसे उपयोगी होगा। –

6

इस प्रयास करें:

List<string>[] apples = new List<string>[2]; 

आप बाद में प्रत्येक सूची के प्रारंभ करना:

apples[0] = new List<string>(); 
+0

धन्यवाद, यह काम करता है! –

3
 var listArray = new List<string>[2]; 
     for (var i = 0; i < listArray.Length; i++) 
     { 
      listArray[i] = new List<string>(); 
     } 
संबंधित मुद्दे