新しい値を追加する動的整数配列があります。どうしたらいいですか?整数配列に新しい値を追加する(Visual Basic 2010)
Dim TeamIndex(), i As Integer
For i = 0 to 100
'TeamIndex(i).Add = <some value>
Next
新しい値を追加する動的整数配列があります。どうしたらいいですか?整数配列に新しい値を追加する(Visual Basic 2010)
Dim TeamIndex(), i As Integer
For i = 0 to 100
'TeamIndex(i).Add = <some value>
Next
ReDimをPreserveで使用すると、古い値を保持して配列のサイズを増やすことができます。
サイズを知らず、Arrayサイズを1つずつ増やすことを知ったときには、ReDim inループを使用することをお勧めします。
Dim TeamIndex(), i As Integer
ReDim TeamIndex(100)
For i = 0 to 100
TeamIndex(i) = <some value>
Next
あなたはArrayListの/リストを使用することができます
Dim TeamIndex(), i As Integer
For i = 0 to 100
ReDim Preserve TeamIndex(i)
TeamIndex(i) = <some value>
Next
あなたがショットの後のコード内で配列のサイズを宣言する場合は、だから、コードがなります
ReDim TeamIndex(100)
を使用(Of T)を使用して、値をより動的に追加/削除します。
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
を、I = 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の値を使用している上。
ReDimとPreserveは必要ありません。サイズ100の配列を初期化する。 – Writwick
For i = 0〜SomeNo'。したがって、配列が '新しい整数(SomeNo)として初期化される場合'、 'ReDim'および' Preserve'はこのケースでは必要ありません。[Asker by Example] 'SomeNo'は定数です。したがって、 'SomeNo'も可変であり、常に変更されていれば' ReDim'と 'Preserve'が必要になります! – Writwick
+1しかし、List(Of T)は新しいコードのArrayListよりも優先されるべきです – MarkJ