質問

空の 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 = {}として試してください

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top