पर नया मान जोड़ें मेरे पास एक गतिशील पूर्णांक सरणी है जिसमें मैं नए मान जोड़ना चाहता हूं। मैं यह कैसे कर सकता हूं?पूर्णांक सरणी (विजुअल बेसिक 2010)
Dim TeamIndex(), i As Integer
For i = 0 to 100
'TeamIndex(i).Add = <some value>
Next
पर नया मान जोड़ें मेरे पास एक गतिशील पूर्णांक सरणी है जिसमें मैं नए मान जोड़ना चाहता हूं। मैं यह कैसे कर सकता हूं?पूर्णांक सरणी (विजुअल बेसिक 2010)
Dim TeamIndex(), i As Integer
For i = 0 to 100
'TeamIndex(i).Add = <some value>
Next
पुरानी मानों को संरक्षित करने के साथ सरणी के आकार को बढ़ाने के लिए संरक्षित के साथ रीडिम का उपयोग करें।
लूप में रीडीम सलाह दी जाती है जब आपको आकार के बारे में कोई जानकारी नहीं होती है और ऐरे आकार को एक-एक करके बढ़ाने के बारे में पता चला है।
Dim TeamIndex(), i As Integer
For i = 0 to 100
ReDim Preserve TeamIndex(i)
TeamIndex(i) = <some value>
Next
आप शॉट में कोड में बाद में सरणी के आकार की घोषणा करने के तो
ReDim TeamIndex(100)
का उपयोग तो कोड होगा:
Dim TeamIndex(), i As Integer
ReDim TeamIndex(100)
For i = 0 to 100
TeamIndex(i) = <some value>
Next
आप ArrayList/सूची का उपयोग कर सकते हैं (टी का) मूल्यों को अधिक गतिशील रूप से जोड़ें/निकालें का उपयोग करने के लिए।
Sub Main()
' Create an ArrayList and add three strings to it.
Dim list As New ArrayList
list.Add("Dot")
list.Add("Net")
list.Add("Perls")
' Remove a string.
list.RemoveAt(1)
' Insert a string.
list.Insert(0, "Carrot")
' Remove a range.
list.RemoveRange(0, 2)
' Display.
Dim str As String
For Each str In list
Console.WriteLine(str)
Next
End Sub
Romil के जवाब में कुछ भी नहीं है कि मैं गलत होने का विचार नहीं है, लेकिन मैं आगे जाना होगा। ReDim Preserve
एक बहुत ही उपयोगी कमांड है लेकिन यह जानना महत्वपूर्ण है कि यह एक महंगा आदेश है और इसे बुद्धिमानी से उपयोग करना है।
पर विचार करें:
Dim TeamIndex(), i As Integer
For i = 0 to 100
ReDim Preserve TeamIndex(i)
TeamIndex(i) = <some value>
Next
हर पाश के लिए, को छोड़कर मैं = 0, सामान्य भाषा रनटाइम (CLR) करना होगा: एक नया पूर्णांक सरणी कि एक तत्व से बड़ा है के लिए
ArrayList
शानदार है यदि आपको सरणी के बीच से तत्व जोड़ने या निकालने की आवश्यकता है, लेकिन यदि आप इसकी आवश्यकता नहीं है तो भी आप उस कार्यक्षमता के लिए भुगतान कर रहे हैं। यदि, उदाहरण के लिए, आप एक फ़ाइल से मूल्य पढ़ रहे हैं और अनुक्रमिक रूप से उन्हें संग्रहीत कर रहे हैं लेकिन पहले से नहीं जानते कि कितने मूल्य होंगे, ArrayList
में भारी ओवरहेड होता है जिसे आप टालना कर सकते हैं।
मैं हमेशा इस तरह ReDim
का उपयोग करें:
Dim MyArray() As XXX
Dim InxMACrntMax As Integer
ReDim MyArray(1000)
InxMACrntMax=-1
Do While more data to add to MyArray
InxMACrntMax = InxMACrntMax + 1
If InxMACrntMax > UBound(MyArray) Then
ReDim Preserve MyArray(UBound(MyArray)+100)
End If
MyArray(InxMACrntMax) = NewValue
Loop
ReDim MyArray(InxMACrntMax) ' Discard excess elements
से ऊपर मैं 100 और 1000 के मूल्यों मैं लेने निर्भर का इस्तेमाल किया है की संभावना आवश्यकता के अपने आकलन पर।
रीडीम और संरक्षित करने की कोई आवश्यकता नहीं है। बस आकार 100 के साथ सरणी को initilize [मानते आकार 100 है] – Writwick
'i = 0 के लिए कुछ नहीं '। तो यदि इस मामले में 'कुछ पूर्णांक' के रूप में 'नए पूर्णांक (कुछ नहीं)', 'रीडीम' और 'संरक्षित' की आवश्यकता नहीं होगी [पूछताछकर्ता द्वारा उदाहरण] 'कुछ नहीं' स्थिर है। तदनुसार, यदि 'कुछ नहीं' भी परिवर्तनीय है और लगातार बदल जाता है तो 'रीडीम' और 'संरक्षित' आवश्यक होगा! – Writwick
+1 लेकिन सूची (टी का) को नए कोड के लिए ArrayList पर प्राथमिकता दी जानी चाहिए – MarkJ