VB.NET Empty Ssortingng Array

Comment créer un tableau de chaînes à une dimension vide?

Dim StrEmpty (-1) en tant que chaîne

VB est indexé sur 0 dans les déclarations de tableaux , donc quelque chose comme Dim myArray(10) as Ssortingng vous donne 11 éléments. C’est une erreur courante lors de la traduction depuis les langages C.

Donc, pour un tableau vide, l’une des options suivantes fonctionnerait:

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

Vous n’avez pas à inclure Ssortingng deux fois, et vous n’avez pas besoin d’utiliser New.
L’un ou l’autre des éléments suivants fonctionnera …

 Dim ssortingngs() as Ssortingng = {} Dim ssortingngs as Ssortingng() = {} 

Quelque chose comme:

 Dim myArray(9) as Ssortingng 

Vous donnerait un tableau de 10 références de chaîne (chacune pointant vers Rien).

Si vous n’êtes pas sûr de la taille au moment de la déclaration, vous pouvez déclarer un tableau de type chaîne comme ceci:

 Dim myArray() as Ssortingng 

Et puis, vous pourrez le pointer plus tard vers un tableau de chaînes de taille appropriée:

 ReDim myArray(9) as Ssortingng 

ZombieSheep a raison d’utiliser une liste si vous ne connaissez pas la taille totale et que vous devez la remplir dynamicment. Dans VB.NET ce serait:

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

Et puis pour obtenir un tableau de cette liste:

 myList.ToArray() 

@Marque

Merci pour la correction.

Le tableau que vous avez créé avec Dim s (0) As Ssortingng N’EST PAS VIDE

Dans VB.Net, l’indice que vous utilisez dans le tableau est l’index du dernier élément. VB.Net commence par défaut à indexer à 0, vous avez donc un tableau qui a déjà un élément.

Vous devriez plutôt essayer d’utiliser System.Collections.Specialized.SsortingngCollection ou (encore mieux) System.Collections.Generic.List(Of Ssortingng) . Ils représentent à peu près la même chose qu’un tableau de chaînes, sauf qu’ils sont mieux adaptés à l’ajout et à la suppression d’éléments. Et soyons honnêtes: vous créerez rarement un tableau de chaînes vide sans vouloir y append au moins un élément.

Si vous voulez vraiment un tableau de chaînes vide, déclarez-le comme ceci:

 Dim s As Ssortingng() 

ou

 Dim t() As Ssortingng 

Une autre façon de faire:

 Dim ssortingngs() As Ssortingng = {} 

Tester qu’il s’agit d’un tableau de chaînes vide:

 MessageBox.Show("count: " + ssortingngs.Count.ToSsortingng) 

Affiche une boîte de message indiquant “count: 0”.

Je ne sais pas pourquoi vous voudriez, mais la manière de C # serait

 ssortingng[] newArray = new ssortingng[0]; 

Je suppose que VB ne sera pas trop différent de cela.

Si vous créez un tableau vide pour pouvoir le remplir avec des valeurs plus tard, vous devriez vraiment envisager d’utiliser

 List 

et le convertir en un tableau (si vous en avez vraiment besoin en tant que tableau) avec

 newListOfSsortingng.ToArray(); 

essayez cette Dim Arraystr () en tant que Ssortingng = {}

Un peu verbeux, mais auto-documentant …

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