写这个的更好方法是:增长数组

时间:2009-03-06 17:14:49

标签: vb.net arrays loops

之前正在查看一些代码,并且我认为必须有更优雅的方式来编写这个....

(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

3 个答案:

答案 0 :(得分:7)

使用generic List(of string)然后获取包含列表数据的数组(如果需要)

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

答案 1 :(得分:0)

答案 2 :(得分:0)

首先将If语句移出循环。

如果您使用的是框架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