VB.Net Tutorial/Collections/Multiple dimensional array — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 15:53, 26 мая 2010
Содержание
- 1 Declare the jagged array as 4 rows high
- 2 Define and initialize the two dimensional array
- 3 Initialize two dimensional array by index
- 4 Initializing multi-dimensional arrays
- 5 Jagged two-dimensional array example.
- 6 Rectangular Array
- 7 Reference elements in two dimensional array
- 8 Set the array of arrays
- 9 Use For Each/Next to find an element in a two dimension array
Declare the jagged array as 4 rows high
<source lang="vbnet">Option Strict On
Imports System Public Class Tester Public Shared Sub Main() Const rowsUB As Integer = 3 " upper bounds Const rowZero As Integer = 5 Const rowOne As Integer = 2 Const rowTwo As Integer = 3 Const rowThree As Integer = 5 Dim i As Integer Dim jaggedArray(rowsUB)() As Integer ReDim jaggedArray(0)(rowZero) ReDim jaggedArray(1)(rowOne) ReDim jaggedArray(2)(rowTwo) ReDim jaggedArray(3)(rowThree) jaggedArray(0)(3) = 15 jaggedArray(1)(1) = 12 jaggedArray(2)(1) = 9 jaggedArray(2)(2) = 99 jaggedArray(3)(0) = 10 jaggedArray(3)(1) = 11 jaggedArray(3)(2) = 12 jaggedArray(3)(3) = 13 jaggedArray(3)(4) = 14 For i = 0 To rowZero Console.WriteLine("jaggedArray(0)({0}) = {1}", _ i, jaggedArray(0)(i)) Next For i = 0 To rowOne Console.WriteLine("jaggedArray(1)({0}) = {1}", _ i, jaggedArray(1)(i)) Next For i = 0 To rowTwo Console.WriteLine("jaggedArray(2)({0}) = {1}", _ i, jaggedArray(2)(i)) Next For i = 0 To rowThree Console.WriteLine("jaggedArray(3)({0}) = {1}", _ i, jaggedArray(3)(i)) Next End Sub End Class</source>
jaggedArray(0)(0) = 0 jaggedArray(0)(1) = 0 jaggedArray(0)(2) = 0 jaggedArray(0)(3) = 15 jaggedArray(0)(4) = 0 jaggedArray(0)(5) = 0 jaggedArray(1)(0) = 0 jaggedArray(1)(1) = 12 jaggedArray(1)(2) = 0 jaggedArray(2)(0) = 0 jaggedArray(2)(1) = 9 jaggedArray(2)(2) = 99 jaggedArray(2)(3) = 0 jaggedArray(3)(0) = 10 jaggedArray(3)(1) = 11 jaggedArray(3)(2) = 12 jaggedArray(3)(3) = 13 jaggedArray(3)(4) = 14 jaggedArray(3)(5) = 0
Define and initialize the two dimensional array
<source lang="vbnet">Imports System Class Tester
Public Shared Sub Main() Const rowsUB As Integer = 4 Const columnsUB As Integer = 3 Dim rectangularArray As Integer(,) = _ {{0, 1, 2}, {3, 4, 5}, {6, 7, 8}, {9, 10, 11}} Dim i As Integer For i = 0 To rowsUB - 1 Dim j As Integer For j = 0 To columnsUB - 1 Console.WriteLine( _ "rectangularArray[{0},{1}] = {2}", _ i, j, rectangularArray(i, j)) Next j Next i End Sub "Run
End Class</source>
rectangularArray[0,0] = 0 rectangularArray[0,1] = 1 rectangularArray[0,2] = 2 rectangularArray[1,0] = 3 rectangularArray[1,1] = 4 rectangularArray[1,2] = 5 rectangularArray[2,0] = 6 rectangularArray[2,1] = 7 rectangularArray[2,2] = 8 rectangularArray[3,0] = 9 rectangularArray[3,1] = 10 rectangularArray[3,2] = 11
Initialize two dimensional array by index
<source lang="vbnet">Public Class Tester
Public Shared Sub Main Dim SqaresTable(5, 1) As Integer SqaresTable(0, 0) = 0 SqaresTable(0, 1) = 0 SqaresTable(1, 0) = 1 SqaresTable(1, 1) = 1 SqaresTable(2, 0) = 2 SqaresTable(2, 1) = 4 SqaresTable(3, 0) = 3 SqaresTable(3, 1) = 9 SqaresTable(4, 0) = 4 SqaresTable(4, 1) = 16 SqaresTable(5, 0) = 5 SqaresTable(5, 1) = 25 Console.WriteLine(SqaresTable(2, 1)) End Sub
End Class</source>
4
Initializing multi-dimensional arrays
<source lang="vbnet">Module Tester
Sub Main() Dim i, j As Integer " create rectangular two-dimensional array Dim array1 As Integer(,) array1 = New Integer(,) {{1, 2, 3}, {4, 5, 6}} " create jagged two-dimensional array Dim array2 As Integer()() = New Integer(2)() {} array2(0) = New Integer() {1, 2} array2(1) = New Integer() {3} array2(2) = New Integer() {4, 5, 6}
For i = 0 To array1.GetUpperBound(0) For j = 0 To array1.GetUpperBound(1) Console.Write(array1(i, j) & " ") Next Console.WriteLine("") Next For i = 0 To array2.GetUpperBound(0) For j = 0 To array2(i).GetUpperBound(0) Console.WriteLine(array2(i)(j) & " ") Next Console.WriteLine("") Next End Sub
End Module</source>
1 2 3 4 5 6 1 2 3 4 5 6
Jagged two-dimensional array example.
<source lang="vbnet">Module Tester
Dim lastStudent, lastExam As Integer Sub Main() Dim i As Integer " jagged array with 3 rows of exam scores Dim gradeArray As Integer()() = New Integer(2)() {} gradeArray(0) = New Integer() {7, 8, 6, 3} gradeArray(1) = New Integer() {8, 7, 9, 1} gradeArray(2) = New Integer() {0, 0, 6, 1} " upper bounds for array manipulations lastStudent = gradeArray.GetUpperBound(0) lastExam = gradeArray(0).GetUpperBound(0)
Console.WriteLine("Lowest grade: " & _ Minimum(gradeArray) & vbCrLf & "Highest grade: " & _ Maximum(gradeArray)) For i = 0 To lastStudent Console.WriteLine("Average for student " & _ i & " is " & Average(gradeArray(i))) Next End Sub " Main Function Minimum(ByVal grades As Integer()()) _ As Integer Dim lowGrade As Integer = 100 Dim i, j As Integer For i = 0 To lastStudent For j = 0 To lastExam If grades(i)(j) < lowGrade Then lowGrade = grades(i)(j) End If Next Next Return lowGrade End Function " Minimum Function Maximum(ByVal grades As Integer()()) _ As Integer Dim highGrade As Integer = 0 Dim i, j As Integer For i = 0 To lastStudent For j = 0 To lastExam If grades(i)(j) > highGrade Then highGrade = grades(i)(j) End If Next Next Return highGrade End Function " Maximum Function Average(ByVal setOfGrades As Integer()) _ As Double Dim i As Integer, total As Integer = 0 For i = 0 To lastExam total += setOfGrades(i) Next Return total / setOfGrades.Length End Function " Average
End Module</source>
Lowest grade: 0 Highest grade: 9 Average for student 0 is 6 Average for student 1 is 6.25 Average for student 2 is 1.75
Rectangular Array
<source lang="vbnet">Option Strict On
Imports System Class Tester Shared Sub Main() Const rowsUB As Integer = 4 Const columnsUB As Integer = 3 Dim rectangularArray(rowsUB, columnsUB) As Integer Dim i As Integer For i = 0 To rowsUB - 1 Dim j As Integer For j = 0 To columnsUB - 1 rectangularArray(i, j) = i + j Next j Next i For i = 0 To rowsUB - 1 Dim j As Integer For j = 0 To columnsUB - 1 Console.WriteLine( _ "rectangularArray[{0},{1}] = {2}", _ i, j, rectangularArray(i, j)) Next j Next i End Sub End Class</source>
rectangularArray[0,0] = 0 rectangularArray[0,1] = 1 rectangularArray[0,2] = 2 rectangularArray[1,0] = 1 rectangularArray[1,1] = 2 rectangularArray[1,2] = 3 rectangularArray[2,0] = 2 rectangularArray[2,1] = 3 rectangularArray[2,2] = 4 rectangularArray[3,0] = 3 rectangularArray[3,1] = 4 rectangularArray[3,2] = 5
Reference elements in two dimensional array
<source lang="vbnet">public class Test
public Shared Sub Main Dim aryBoard(9, 9) As Integer "Move the element. aryBoard(0, 0) = 0 aryBoard(2, 4) = 1 "Check for the element. If aryBoard(0, 0) = 1 Then Console.WriteLine("The piece was found.") Else Console.WriteLine("The piece was not found.") End If End Sub
End class</source>
The piece was not found.
Set the array of arrays
<source lang="vbnet">public class Test
public Shared Sub Main Dim aryIntArray(9) As Integer Dim aryStrArray(99) As String Dim aryBigArray(1) As Object Dim intCounter As Integer "Populate array aryIntArray. For intCounter = 0 To 9 aryIntArray(intCounter) = intCounter Next "Populate array aryStrArray. For intCounter = 0 To 99 aryStrArray(intCounter) = "ITEM: " & intCounter.ToString("0000") Next "Set the array of arrays. aryBigArray(0) = aryIntArray aryBigArray(1) = aryStrArray "Display some array values. Console.WriteLine(aryBigArray(0)(7)) Console.WriteLine(aryBigArray(1)(16)) End Sub
End class</source>
7 ITEM: 0016
Use For Each/Next to find an element in a two dimension array
<source lang="vbnet">Module modForEach
Sub Main() Dim gradeArray As Integer(,) = New Integer(,) _ {{77, 68, 86, 73}, {98, 87, 89, 81}, {70, 90, 86, 81}} Dim grade As Integer Dim lowGrade As Integer = 100 For Each grade In gradeArray If grade < lowGrade Then lowGrade = grade End If Next Console.WriteLine("The minimum grade is: {0}", lowGrade) End Sub " Main
End Module</source>
The minimum grade is: 68