Domanda

Stavo guardando un po 'di codice prima e sto pensando che ci deve essere un modo più elegante di scrivere questo ....

(returnVar.Warnings è un array di stringhe, potrebbe essere restituito come qualsiasi dimensione in base al numero di avvisi registrati)

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
È stato utile?

Soluzione

usa Elenco generico (di stringa) quindi ottenere un array contenente i dati dell'elenco se necessario

dim list = new List(of string)
list.Add("foo")
list.Add("bar")
list.ToArray()

Altri suggerimenti

Inizia spostando l'istruzione If fuori dal ciclo.

Se si utilizza Framework 3.5, è possibile utilizzare LINQ per eseguire il ciclo degli elementi.

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top