2011-03-16 25 views

उत्तर

2

आप LINQ करने की कोशिश की है? शायद (छद्म कोड-ish) की तर्ज पर कुछ:

string[][] test 
+0

यह बहुआयामी है इसलिए इसमें आइटम काम नहीं करेगा क्योंकि आइटम स्वयं एक सरणी – msarchet

+0

ठीक है, फिर विकल्प में सरणी-अनुकूल कोड (जैसे मैंने कहा, छद्म कोड-आश) के लिए शामिल है। इसके बजाय, आइटम कहां के बारे में। इंडेक्सऑफ (अन्य उपलब्ध)> = 0? मैं अपना जवाब अपडेट करूंगा। – Kon

+0

'इंडेक्सऑफ' या तो काम नहीं करता है। – Gabe

1

इसी लिए कहा

For i = 0 To i = test.Count - 1 
    If set(1).Equals(someVariable) Then 
     x = i 
     Exit For 
    End If 
Next 
2

तो आपको कुछ ऐसा करने की आवश्यकता होगी:

var x = (from item in test 
     where item.IndexOf(OtherVariable) >= 0 
     select item.IndexOf(OtherVariable)).SingleOrDefault(); 

FYI करें, इस करता है, तो आप के बजाय इस तरह अपने सरणी की घोषणा काम करना चाहिए यह करने के लिए ..

Dim test As String(,) = New String(,) {{"1", "2", "3"}, {"4", "5", "6"}} 

Dim cols As Integer = test.GetUpperBound(0) 
Dim rows As Integer = test.GetUpperBound(1) 

Dim toFind As String = "4" 
Dim xIndex As Integer 
Dim yIndex As Integer 

For x As Integer = 0 To cols - 1 
    For y As Integer = 0 To rows - 1 
     If test(x, y) = toFind Then 
      xIndex = x 
      yIndex = y 
     End If 
    Next 
Next 

एक तरफ ध्यान दें पर, बहुत से लोगों को एहसास नहीं है कि आप बहु आयाम सरणियों पर प्रत्येक पाश के लिए एक का उपयोग कर सकते हैं।

For Each value As String In test 
    Console.WriteLine(value) 
Next 

यह उत्तरोत्तर होगा पाश एक सरणी के सभी आयामों के माध्यम से।

उम्मीद है कि इससे मदद मिलती है।

3

आपको Array.GetLowerBound और Array.GetUpperBound विधियों का उपयोग करके सरणी के माध्यम से लूप करना होगा। Array.IndexOf और Array.FindIndex विधियां बहुआयामी सरणी का समर्थन नहीं करती हैं।

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

string[,,] data = new string[3,3,3]; 
data.SetValue("foo", 0, 1, 2); 

for (int i = data.GetLowerBound(0); i <= data.GetUpperBound(0); i++) 
    for (int j = data.GetLowerBound(1); j <= data.GetUpperBound(1); j++) 
     for (int k = data.GetLowerBound(2); k <= data.GetUpperBound(2); k++) 
      Console.WriteLine("{0},{1},{2}: {3}", i, j, k, data[i,j,k]); 

तुम भी Array.GetLength method और Array.Rank property उपयोगी लग सकते। मैं एक छोटी बहुआयामी सरणी स्थापित करने और इन सभी विधियों और गुणों का उपयोग करने की सलाह देता हूं ताकि वे यह जान सकें कि वे कैसे काम करते हैं।

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