これは C では簡単ですが、VB ではどうすればよいでしょうか?
これが私が今試していることです。
Dim a As String = "a"
Dim b As String = "b"
Dim c As String = "c"
Dim d As String = "d"
For Each i in {a, b, c, d}
i = "blah" & i
End For
これは変更のみi
であり、基になる変数ではないため、機能しません。
本当に必要なのはポインター!?
これは C では簡単ですが、VB ではどうすればよいでしょうか?
これが私が今試していることです。
Dim a As String = "a"
Dim b As String = "b"
Dim c As String = "c"
Dim d As String = "d"
For Each i in {a, b, c, d}
i = "blah" & i
End For
これは変更のみi
であり、基になる変数ではないため、機能しません。
本当に必要なのはポインター!?
VB のFor Each
ループは、そのような構造をサポートしていません。それは残念ですが、とにかくもっと良い方法があります。一般的にループを避けるようにしてください。
Dim items = {a, b, c, d}.Select(Function (s) "blah" & s)
そして、それが有効な VB ではない場合 (コレクション初期化子とメソッド呼び出しを組み合わせて…)、次のように動作します。
Dim items = (New List(Of String)() From {a, b, c, d}).Select(Function (s) "blah" & s)
ここでは、メモリ内の変数のアドレスの代わりに、配列内の変数のアドレスを使用します。
Dim a As String = "a"
Dim b As String = "b"
Dim c As String = "c"
Dim d As String = "d"
Dim items = {a,b,c,d}
For i As Integer = 0 To items.Length - 1
items(i) = "blah" & items(i)