No I don't think it is frowned on. I also don't see any pros to doing it this way. What is the purpose in NOT using For-Each?
In VB6 you could get better speed by doing it similiar to that way only you neget the speed by still requesting the GetUpperBound in the For statement. Also I'm not sure if the speed of a For-Each is as much of an issue in .NET.
In VB6 this would be faster than a For-Each:
VB Code:
Dim Colors() As String = KnownColor.GetNames_
(GetType(KnownColor))
Dim ColorCounter As Integer
Dim ColorMax As Integer=Colors.GetUpperBound(0)
For ColorCounter = 0 To ColorMax 'having a static number stops it from checking this number at the start of every loop
If Not Color.FromName_
(Colors(ColorCounter)).IsSystemColor Then
ListBox1.Items.Add(Colors(ColorCounter))
End If
Next 'I believe it is actually faster when you don't specify the Next variable