Лучший способ написать это: растущий массив
Вопрос
Ранее рассматривал какой-то код и думаю, что должен быть более элегантный способ написания этого ....
(returnVar.Warnings - строковый массив, его можно вернуть в любом размере в зависимости от количества зарегистрированных предупреждений)
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
Решение
используйте универсальный список (из строки) затем получите массив, содержащий данные списка, если вам это нужно
dim list = new List(of string)
list.Add("foo")
list.Add("bar")
list.ToArray()
Другие советы
Разве вы не можете использовать ArrayList, который делает это для вас?
http://msdn.microsoft.com/en -us / библиотека / system.collections.arraylist.aspx
Начните с перемещения оператора If
из цикла.
Если вы используете framework 3.5, вы можете использовать LINQ для зацикливания элементов.
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
Не связан с StackOverflow