# GetUpperBound and GetLowerbound

I need help understanding  GetUpperBound Method and GetLowerbound Method. Could you provide a simple sample on both functions?
###### Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Middle School Assistant TeacherCommented:
You pass the dimension of the array and the GetUpperBound() method returns the upper bound of that dimension.  The first dimension starts at 0 (zero).  The Array.Rank() method will tell you how many dimensions an array has.

GetLowerBound() always returns 0 (zero) assuming you have passed in a valid dimension for that array.

Here are some examples:

Dim arr1(9) As Integer
Debug.Print(arr1.Rank) ' 1
Debug.Print(arr1.GetUpperBound(0)) ' 9

Dim arr2(4, 5) As Integer
Debug.Print(arr2.Rank) ' 2
Debug.Print(arr2.GetUpperBound(0)) ' 4
Debug.Print(arr2.GetUpperBound(1)) ' 5

Dim arr3(7, 2, 6) As Integer
Debug.Print(arr3.Rank) ' 3
Debug.Print(arr3.GetUpperBound(0)) ' 7
Debug.Print(arr3.GetUpperBound(1)) ' 2
Debug.Print(arr3.GetUpperBound(2)) ' 6
0
Author Commented:
It looks like get the highest for GetUpperBound and get the lowest for GetLowerbound in array. Am I on the right track?
0
Middle School Assistant TeacherCommented:
Yes...where "highest" means get the greatest index number or slot number for the specified dimension.
0
Author Commented:
Idle_Mind,

cool. I got that down. One thing I don't understand is Ok we know what the greatest index or lowerest index, knowing just what the index is how is that helping us?  Could you give me what we do exactly in the "real world"?
sample

Dim arr1() As String = {"a", "b", "c"}

For Each mystring As String In arr1

MessageBox.Show(mystring) ' just for the hack of it

Next

MessageBox.Show(arr1.GetUpperBound(0)) '2  a is 0 b is 1 c is 2
0
Middle School Assistant TeacherCommented:
"how is that helping us?  Could you give me what we do exactly in the "real world"?"

Lol...a common usage is to setup a For...Next loop to iterate over the elements of an array:

Dim arr1() As String = {"a", "b", "c"}
Debug.Print("arr1")
For i As Integer = 0 To arr1.GetUpperBound(0)
Debug.Print("Index " & i & " = " & arr1(i))
Next

Dim arr2(,) As String = {{"a", "b", "c"}, {"d", "e", "f"}, {"g", "h", "i"}, {"j", "k", "l"}}
Debug.Print("arr2")
For i As Integer = 0 To arr2.GetUpperBound(0)
For j As Integer = 0 To arr2.GetUpperBound(1)
Debug.Print("(" & i & "," & j & ") = " & arr2(i, j))
Next
Next
0

Experts Exchange Solution brought to you by