2009-02-14 17 views
35

मैं, नीचे की तरह कुछ सरणियों की एक सरणी है कि बार-बार डेटा का उपयोग किया जाएगा बनाने के लिए कोशिश कर रहा हूँ:सी # सरणियों की एक सरणी बनाना

int[] list1 = new int[4] { 1, 2, 3, 4}; 
int[] list2 = new int[4] { 5, 6, 7, 8}; 
int[] list3 = new int[4] { 1, 3, 2, 1 }; 
int[] list4 = new int[4] { 5, 4, 3, 2 }; 

int[,] lists = new int[4, 4] { list1 , list2 , list3 , list4 }; 

मैं इसे प्राप्त नहीं कर सकता यह काम करते हैं, और मैं कर रहा हूँ सोच रहा हूं कि क्या मैं इस गलत तरीके से आ रहा हूं।

मैं क्या करने का प्रयास कर रहा हूँ अगर मूल्यों ताकि मैं उनके लिए एक विशेष क्रम में, संसाधित कर सकते हैं बार-बार एक लंबी सूची बनाने के लिए विधि के कुछ प्रकार पैदा करते हैं। कुछ,

int[,] lists = new int[90,4] { list1, list1, list3, list1, list2,(and so on)}; 

for (int i = 0,i < 90;++i) { 
    doStuff(lists[i]); 
} 

और क्रमशः doStuff() को सरणी पास कर दी गई है। क्या मैं इस बारे में पूरी तरह गलत हूं, या क्या मुझे सरणी की सरणी बनाने के लिए कुछ याद आ रहा है?

उत्तर

52

यह क्या आपको बस इतना करना है:

int[] list1 = new int[4] { 1, 2, 3, 4}; 
int[] list2 = new int[4] { 5, 6, 7, 8}; 
int[] list3 = new int[4] { 1, 3, 2, 1 }; 
int[] list4 = new int[4] { 5, 4, 3, 2 }; 

int[][] lists = new int[][] { list1 , list2 , list3 , list4 }; 

एक अन्य विकल्प एक List<int[]> प्रकार बनाने के लिए किया जाएगा:

List<int[]> data=new List<int[]>(){list1,list2,list3,list4}; 
+1

मैं एक निश्चित आकार के साथ सरणियों के एक खाली सरणी कैसे बनाऊं? अलग-अलग सरणी में संग्रहीत सरणियों भिन्न हो सकते हैं, लेकिन वहाँ मास्टर सरणी के भीतर सरणियों की एक निश्चित राशि हो जाएगा। –

5

समस्या यह है कि आप के लिए सूची में तत्वों को परिभाषित करने के प्रयास कर रहे हैं है एकाधिक सूचियां (परिभाषित की गई एकाधिक इंट्स नहीं)। आपको इस तरह की सूचियां परिभाषित करनी चाहिए।

int[,] list = new int[4,4] { 
{1,2,3,4}, 
{5,6,7,8}, 
{1,3,2,1}, 
{5,4,3,2}}; 

तुम भी

int[] list1 = new int[4] { 1, 2, 3, 4}; 
int[] list2 = new int[4] { 5, 6, 7, 8}; 
int[] list3 = new int[4] { 1, 3, 2, 1 }; 
int[] list4 = new int[4] { 5, 4, 3, 2 }; 

int[,] lists = new int[4,4] { 
{list1[0],list1[1],list1[2],list1[3]}, 
{list2[0],list2[1],list2[2],list2[3]}, 
etc...}; 
3

कर सकता है मुझे लगता है कि आप Jagged Arrays द्वारा खोजे जा रहे है, जो बहुआयामी सरणियों से अलग सी # में (के रूप में आप अपने उदाहरण में उपयोग कर रहे हैं) कर रहे हैं। अपनी घोषणाओं में सरणी को घुमावदार सरणी में कनवर्ट करना इसे काम करना चाहिए। हालांकि, अगर आप अभी भी 2 डी दांतेदार सरणी में भर आइटम पुनरावृति करने के लिए दो छोरों का उपयोग करना होगा।

+0

अपने जवाब में लिंक बस के बारे में "नई भूतल प्रो" के पृष्ठ पर रीडायरेक्ट। –

+0

इस पोस्ट में 8 साल पुराना है ... मुझे लगता है कि linkrot उम्मीद की जा करने के लिए है! – Noldorin

+1

यहां एक अद्यतित [एमएसडीएन दस्तावेज़ जेगर्ड एरेज़ के बारे में है] (https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/arrays/jagged-arrays) –

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