質問
空の 1 次元文字列配列を作成するにはどうすればよいですか?
解決
Dim strEmpty(-1) を文字列として
他のヒント
VBは 配列宣言では 0 からインデックスが付けられます, 、次のようなものです Dim myArray(10) as String
あなたにあげる 11 要素。これは、C 言語から翻訳するときによくある間違いです。
したがって、空の配列の場合は、次のいずれかが機能します。
Dim str(-1) as String ' -1 + 1 = 0, so this has 0 elements
Dim str() as String = New String() { } ' implicit size, initialized to empty
String を 2 回含める必要はなく、New を使用する必要もありません。
次のいずれかが機能します...
Dim strings() as String = {}
Dim strings as String() = {}
作成した配列 Dim s(0) As String
空ではありません
VB.Net では、配列で使用する添字は最後の要素のインデックスです。VB.Net はデフォルトで 0 からインデックス付けを開始するため、すでに 1 つの要素を持つ配列が作成されます。
代わりに使ってみるべきです System.Collections.Specialized.StringCollection
または(さらに良い) System.Collections.Generic.List(Of String)
. 。これらは文字列の配列とほぼ同じですが、項目の追加と削除の読み込みが優れている点が異なります。正直に言うと、を作成することはほとんどありません 空の 追加したくない文字列配列 少なくとも それには一つの要素が必要です。
本当に空の文字列配列が必要な場合は、次のように宣言します。
Dim s As String()
または
Dim t() As String
何かのようなもの:
Dim myArray(9) as String
10 個の String 参照の配列が得られます (それぞれが Nothing を指しています)。
宣言時にサイズがわからない場合は、次のように String 配列を宣言できます。
Dim myArray() as String
そして、後で適切なサイズの文字列配列を指すことができます。
ReDim myArray(9) as String
合計サイズが分からず、動的にデータを入力する必要がある場合、ZombieSheep は List を使用するのが正しいです。VB.NET では次のようになります。
Dim myList as New List(Of String)
myList.Add("foo")
myList.Add("bar")
そして、そのリストから配列を取得するには:
myList.ToArray()
@マーク
訂正ありがとうございます。
これを行う別の方法:
Dim strings() As String = {}
空の文字列配列であることをテストします。
MessageBox.Show("count: " + strings.Count.ToString)
「カウント:」というメッセージ ボックスが表示されます。0」。
少し冗長ですが、自己文書化します...
Dim strEmpty() As String = Enumerable.Empty(Of String).ToArray
なぜそうするのかはわかりませんが、C# の方法は次のようになります。
string[] newArray = new string[0];
VB もこれとそれほど変わらないと思います。
後で値を入力できるように空の配列を構築している場合は、実際に使用することを検討する必要があります。
List<string>
そしてそれを配列に変換します(本当に配列として必要な場合)
newListOfString.ToArray();
このdim arraysstr()をstring = {}として試してください