وهناك طريقة أفضل من كتابة هذا: تنامي مجموعة
سؤال
وكان النظر في بعض التعليمات البرمجية في وقت سابق، وأنا أفكر أن يجب أن يكون هناك وسيلة أكثر أناقة من كتابة هذا ....
(ومجموعة سلسلة، ويمكن إرجاع 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
للخروج من حلقة.
إذا كنت تستخدم الإطار 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