Pergunta

Como posso criar um vazio unidimensional matriz de seqüência de caracteres?

Foi útil?

Solução

Dim strEmpty(-1) as String

Outras dicas

O VB é 0 indexadas no declarações de matriz, assim como seomthing Dim myArray(10) as String dá-lhe 11 elementos.É um erro comum quando a tradução de idiomas C.

Assim, para uma matriz vazia, o seguinte seria de trabalho:

Dim str(-1) as String ' -1 + 1 = 0, so this has 0 elements
Dim str() as String = New String() { } ' implicit size, initialized to empty

Você não precisa incluir Cadeia duas vezes, e você não precisa usar Novo.
Um dos seguintes irá funcionar...

Dim strings() as String = {}
Dim strings as String() = {}

A matriz criada por Dim s(0) As String NÃO É VAZIO

No VB.Net o subscrito você usar na matriz é o índice do último elemento.VB.Net por padrão começa a indexação em 0, então você tem uma matriz que já tem um elemento.

Você deve, em vez disso tente usar System.Collections.Specialized.StringCollection ou (melhor ainda) System.Collections.Generic.List(Of String).São praticamente a mesma coisa como uma matriz de seqüência de caracteres, exceto que eles estão cargas melhor para adição e remoção de itens.E vamos ser honestos:você raramente vai criar um vazio matriz de seqüência de caracteres sem querer adicionar pelo menos um elemento a ele.

Se você realmente quer uma cadeia de caracteres vazia matriz, declará-lo como este:

Dim s As String()

ou

Dim t() As String

Algo como:

Dim myArray(9) as String

Dar-lhe-ia uma matriz de 10 Cadeia de referências (cada um apontando para o Nada).

Se não tem a certeza do tamanho na declaração de tempo, você pode declarar uma matriz de Seqüência de caracteres como este:

Dim myArray() as String

E, em seguida, você pode apontá-lo para um tamanho de matriz de Seqüências de caracteres mais tarde:

ReDim myArray(9) as String

ZombieSheep é direito sobre o uso de uma Lista, se você não sabe o tamanho total e o que você precisa para preencher dinamicamente ele.No VB.NET que seria:

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

E, em seguida, para obter uma matriz a partir de uma Lista:

myList.ToArray()

@Marcos

Obrigado pela correção.

Outra maneira de fazer isso:

Dim strings() As String = {}

Teste que é uma cadeia de caracteres vazia matriz:

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

Irá mostrar uma caixa de mensagem dizendo "contagem:0".

Um pouco detalhado, mas a auto documentar...

Dim strEmpty() As String = Enumerable.Empty(Of String).ToArray

Não sei por que você iria querer, mas o C# forma seria

string[] newArray = new string[0];

Eu estou supondo que o VB não serão muito semelhantes a este.

Se você está construindo uma matriz vazia, então você pode preenchê-la com valores mais tarde, você realmente deve considerar o uso de

List<string>

e convertê-lo para uma matriz (se você realmente precisa dele como uma matriz) com

newListOfString.ToArray();

tente isso Dim Arraystr() as String ={}

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top