53

空の 1 次元文字列配列を作成するにはどうすればよいですか?

4

10 に答える 10

44

VB は配列宣言で 0-indexed であるため、seomthing likeで11個の要素Dim myArray(10) as Stringが得られます。これは、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
于 2008-09-04T21:27:01.763 に答える
39

Dim strEmpty(-1) As String

于 2008-09-04T20:41:56.923 に答える
9

IS NOT EMPTYで作成した配列Dim s(0) As String

VB.Net では、配列で使用する添字は最後の要素のインデックスです。VB.Net はデフォルトでインデックスを 0 から開始するため、配列には既に 1 つの要素があります。

代わりにSystem.Collections.Specialized.StringCollectionor (さらに良い)を使用してみてくださいSystem.Collections.Generic.List(Of String)。これらは、アイテムの追加と削除に適していることを除いて、文字列の配列とほとんど同じです。正直に言って、少なくとも1 つの要素を追加したくない空の文字列配列を作成することはめったにありません。

本当に空の文字列配列が必要な場合は、次のように宣言します。

Dim s As String()

また

Dim t() As String
于 2008-09-04T21:25:37.100 に答える
8

String を 2 回含める必要はなく、New を使用する必要もありません。
次のいずれかが機能します...

Dim strings() as String = {}
Dim strings as String() = {}
于 2015-01-28T14:52:40.787 に答える
8

何かのようなもの:

Dim myArray(9) as String

10 個の String 参照の配列が得られます (それぞれが Nothing を指しています)。

宣言時にサイズがわからない場合は、次のように String 配列を宣言できます。

Dim myArray() as String

そして、後で適切なサイズの文字列の配列を指すことができます。

ReDim myArray(9) as String

ZombieSheep は、合計サイズがわからず、動的に入力する必要がある場合にリストを使用するのは正しいことです。VB.NET では次のようになります。

Dim myList as New List(Of String)
myList.Add("foo")
myList.Add("bar")

そして、そのリストから配列を取得するには:

myList.ToArray()

@マーク

訂正ありがとうございます。

于 2008-09-04T20:41:34.477 に答える
4

これを行う別の方法:

Dim strings() As String = {}

空の文字列配列であることをテストします。

MessageBox.Show("count: " + strings.Count.ToString)

「count: 0」というメッセージ ボックスが表示されます。

于 2014-11-13T13:51:14.573 に答える
2

少し冗長ですが、自己文書化...

Dim strEmpty() As String = Enumerable.Empty(Of String).ToArray
于 2018-08-03T18:21:52.250 に答える
1

なぜそうしたいのかわかりませんが、C#の方法は次のようになります

string[] newArray = new string[0];

VB はこれとあまり似ていないと思います。

後で値を入力できるように空の配列を作成している場合は、使用を検討する必要があります

List<string>

そしてそれを配列に変換します(本当に配列として必要な場合)

newListOfString.ToArray();
于 2008-09-04T20:38:30.333 に答える