2009-05-07 9 views
6

मैं अलग से एक दो आयामी सरणी पर पंक्तियों और स्तंभों पुनरावृति करना चाहते हैं:मैं एक बहुआयामी सरणी की पंक्तियों और स्तंभों को कैसे पुन: सक्रिय करूं?

object[,] values; 

मैं सिर्फ पंक्तियों और सिर्फ कॉलम के माध्यम से कैसे पुनरावृति हैं?

+1

आपका अलग-अलग अर्थ क्या है? – JerSchneid

उत्तर

13

यह निर्भर करता है कि क्या आप के लिए स्तंभों और पंक्तियों है, लेकिन

for (int i = 0; i < values.GetLength(0); i++) 
      Console.WriteLine(values[i, 0]); 

और:: आप इस कोड स्निपेट को इस्तेमाल कर सकते हैं

for (int i = 0; i < values.GetLength(1); i++) 
      Console.WriteLine(values[0, i]); 
1

बहु-आयामी सरणी में आपके द्वारा संदर्भित तरीके से पंक्तियों और स्तंभ नहीं हैं - उनके पास मूल्यों तक पहुंचने के लिए उपयोग की जाने वाली कई अनुक्रमणिका हैं। इस तरह के एक सरणी पर इटरेटिंग नेस्टेड फॉर-लूप का उपयोग करके किया जाएगा, और यदि आप प्रति-आयाम आधार पर कुछ गणना करना चाहते हैं तो आपको लूप के क्रम को बदलना चाहिए।

एक अन्य विकल्प, यदि आप केवल एक आयाम के आधार पर पुनरावृति करने की जरूरत है, इस तरह एक बहु-आयामी सरणी के बजाय सरणियों की एक सरणी का उपयोग करने के लिए है:

object[][] values; 
2

यहाँ कुछ है सरणी के पहले और दूसरे आयामों के माध्यम से 2 आयामी सरणी के माध्यम से पुनरावृत्त करने के लिए कोड। (वास्तव में "पंक्तियां" और "कॉलम" नहीं हैं क्योंकि

object[,] values = new object[5,5]; 
int rowIWant = 3; //Make sure this is less than values.GetLength(0); 
//Look at one "row" 
for(int i = 0; i < values.GetLength(1); i++ 
{ 
    //Do something here with values[rowIWant, i]; 
} 

int columnIWant = 2; //Make sure this is less than values.GetLength(1); 
//Look at one "column" 
for(int i = 0; i < values.GetLength(0); i++ 
{ 
    //Do something here values[i, columnIWant]; 
} 
संबंधित मुद्दे