Une meilleure façon d’écrire ceci: tableau en croissance
Question
Était en train de regarder du code plus tôt, et je pensais qu'il devait y avoir une manière plus élégante d'écrire ceci ....
(returnVar.Warnings est un tableau de chaînes, il peut être retourné sous n'importe quelle taille en fonction du nombre d'avertissements enregistrés)
For Each item In items
If o.ImageContent.ImageId = 0 Then
ReDim Preserve returnVar.Warnings(returnVar.Warnings.GetUpperBound(0) + 1)
returnVar.Warnings(returnVar.Warnings.GetUpperBound(0)) = "Section: " & section.<header>.<title>.ToString & " , Item: " & item.<title>.ToString
End If
Next
La solution
utilisez la liste générique (de chaîne) puis obtenez un tableau contenant les données de la liste si vous en avez besoin
dim list = new List(of string)
list.Add("foo")
list.Add("bar")
list.ToArray()
Autres conseils
Ne pouvez-vous pas utiliser ArrayList qui le fait pour vous?
http://msdn.microsoft.com/en -us / library / system.collections.arraylist.aspx
Commencez par déplacer l'instruction If
en dehors de la boucle.
Si vous utilisez Framework 3.5, vous pouvez utiliser LINQ pour mettre en boucle les éléments.
If o.ImageContent.ImageId = 0 Then
returnVar.Warnings = items.Select(Function(item) "Section: " & section.<header>.<title>.ToString & " , Item: " & item.<title>.ToString).ToArray()
Else
returnVar.Warnings = New String() {}
End If