में आइटम के सूचकांक का पता लगाएं?एक बहुआयामी सरणी
जाहिर है, इस काम नहीं करेगा:
पिछले प्रश्न केDim x As Integer = test.IndexOf(otherVariable)
में आइटम के सूचकांक का पता लगाएं?एक बहुआयामी सरणी
जाहिर है, इस काम नहीं करेगा:
पिछले प्रश्न केDim x As Integer = test.IndexOf(otherVariable)
आप LINQ करने की कोशिश की है? शायद (छद्म कोड-ish) की तर्ज पर कुछ:
string[][] test
इसी लिए कहा
For i = 0 To i = test.Count - 1
If set(1).Equals(someVariable) Then
x = i
Exit For
End If
Next
तो आपको कुछ ऐसा करने की आवश्यकता होगी:
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
यह उत्तरोत्तर होगा पाश एक सरणी के सभी आयामों के माध्यम से।
उम्मीद है कि इससे मदद मिलती है।
आपको 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 उपयोगी लग सकते। मैं एक छोटी बहुआयामी सरणी स्थापित करने और इन सभी विधियों और गुणों का उपयोग करने की सलाह देता हूं ताकि वे यह जान सकें कि वे कैसे काम करते हैं।
यह बहुआयामी है इसलिए इसमें आइटम काम नहीं करेगा क्योंकि आइटम स्वयं एक सरणी – msarchet
ठीक है, फिर विकल्प में सरणी-अनुकूल कोड (जैसे मैंने कहा, छद्म कोड-आश) के लिए शामिल है। इसके बजाय, आइटम कहां के बारे में। इंडेक्सऑफ (अन्य उपलब्ध)> = 0? मैं अपना जवाब अपडेट करूंगा। – Kon
'इंडेक्सऑफ' या तो काम नहीं करता है। – Gabe