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
Était-ce utile?

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top