之前正在查看一些代码,并且我认为必须有更优雅的方式来编写这个....
(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
答案 0 :(得分:7)
使用generic List(of string)然后获取包含列表数据的数组(如果需要)
dim list = new List(of string)
list.Add("foo")
list.Add("bar")
list.ToArray()
答案 1 :(得分:0)
你不能使用ArrayList为你做这个吗?
http://msdn.microsoft.com/en-us/library/system.collections.arraylist.aspx
答案 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