Working with Loops, Arrays, and Collections in VBNET Game Development - For Each...Next (For Real This Time)
(Page 4 of 4 )
Now we can move on to the For Each loop. The For Each Loop, as noted before, iterates over all of the elements in a given group. We could iterate over all of the elements of an array or a collection. Let's jump right into an example. Let's create an array, populate it, and then write each element out to the screen:
Dim numbers() As Integer = {1, 3, 5, 7, 9}
For Each number As Integer In numbers
Console.WriteLine(number)
Next
In the above example, we create and initialize an array of numbers in one line. We then enter into a For Each loop where we create a variable, "number," that represents an element of the array. The value of this variable is, of course, updated before each iteration.
We can loop through a List(T) the same way:
Dim moreNumbers As New List( Of Integer )
moreNumbers.Add(1)
moreNumbers.Add(3)
moreNumbers.Add(5)
For Each number As Integer In moreNumbers
Console.WriteLine(number)
Next
A Dictionary (TKey, TValue), however, must be treated differently, since we have both a key and a value that we need to iterate over. In order to loop over both, we need to treat both as a single KeyValuePair (Of TKey, TValue), which is a generic class used to represent both a key and a value. Let's loop over names matched to phone numbers:
Dim phoneNumbers As New Dictionary( Of String , String )
phoneNumbers.Add("Tom", "555-5551" )
phoneNumbers.Add("Chuck", "555-5552" )
For Each kvp As KeyValuePair( Of String , String ) In phoneNumbers
Console.WriteLine("{0}: {1}", kvp.Key, kvp.Value)
Next
As you can see, the KeyValuePair (Of TKey, TValue) class allows us to access both the key and the value. If, however, we do not need both the key and the value, we can just loop over one or the other:
' Display all names
For Each name As String In phoneNumbers.Keys()
Console.WriteLine(name)
Next
' Display all phone numbers
For Each number As String In phoneNumbers.Values()
Console.WriteLine(number)
Next
Now that we've looked at all of the loops offered in Visual Basic, we can begin constructing the game.
| DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware. |