Una matriz almacena una colección secuencial de tamaño fijo de elementos del mismo tipo. Una matriz se usa para almacenar una colección de datos, pero a menudo es más útil pensar en una matriz como una colección de variables del mismo tipo.
Todas las matrices constan de ubicaciones de memoria contiguas. La dirección más baja corresponde al primer elemento y la dirección más alta al último elemento.
Creando matrices en VB.Net
Para declarar una matriz en VB.Net, usa la instrucción Dim. Por ejemplo,
Dim intData(30) ' an array of 31 elements Dim strData(20) As String ' an array of 21 strings Dim twoDarray(10, 20) As Integer 'a two dimensional array of integers Dim ranges(10, 100) 'a two dimensional array
También puede inicializar los elementos de la matriz mientras declara la matriz. Por ejemplo,
Dim intData() As Integer = {12, 16, 20, 24, 28, 32} Dim names() As String = {"Karthik", "Sandhya", _ "Shivangi", "Ashwitha", "Somnath"} Dim miscData() As Object = {"Hello World", 12d, 16ui, "A"c}
Los elementos de una matriz se pueden almacenar y acceder a ellos mediante el índice de la matriz. El siguiente programa demuestra esto:
Module arrayApl Sub Main() Dim n(10) As Integer ' n is an array of 11 integers ' Dim i, j As Integer ' initialize elements of array n ' For i = 0 To 10 n(i) = i + 100 ' set element at location i to i + 100 Next i ' output each array element's value ' For j = 0 To 10 Console.WriteLine("Element({0}) = {1}", j, n(j)) Next j Console.ReadKey() End Sub End Module
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
Element(0) = 100 Element(1) = 101 Element(2) = 102 Element(3) = 103 Element(4) = 104 Element(5) = 105 Element(6) = 106 Element(7) = 107 Element(8) = 108 Element(9) = 109 Element(10) = 110
Matrices dinámicas
Las matrices dinámicas son matrices que se pueden dimensionar y redimensionar según las necesidades del programa. Puede declarar una matriz dinámica utilizando el ReDim declaración.
Sintaxis para la declaración ReDim –
ReDim [Preserve] arrayname(subscripts)
Dónde,
-
los Preservar La palabra clave ayuda a preservar los datos en una matriz existente, cuando se cambia su tamaño.
-
nombre de matriz es el nombre de la matriz a redimensionar.
-
subíndices especifica la nueva dimensión.
Module arrayApl Sub Main() Dim marks() As Integer ReDim marks(2) marks(0) = 85 marks(1) = 75 marks(2) = 90 ReDim Preserve marks(10) marks(3) = 80 marks(4) = 76 marks(5) = 92 marks(6) = 99 marks(7) = 79 marks(8) = 75 For i = 0 To 10 Console.WriteLine(i & vbTab & marks(i)) Next i Console.ReadKey() End Sub End Module
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
0 85 1 75 2 90 3 80 4 76 5 92 6 99 7 79 8 75 9 0 10 0
Matrices multidimensionales
VB.Net permite matrices multidimensionales. Las matrices multidimensionales también se denominan matrices rectangulares.
Puede declarar una matriz bidimensional de cadenas como:
Dim twoDStringArray(10, 20) As String
o una matriz tridimensional de variables enteras –
Dim threeDIntArray(10, 10, 10) As Integer
El siguiente programa demuestra la creación y el uso de una matriz bidimensional:
Module arrayApl Sub Main() ' an array with 5 rows and 2 columns Dim a(,) As Integer = {{0, 0}, {1, 2}, {2, 4}, {3, 6}, {4, 8}} Dim i, j As Integer ' output each array element's value ' For i = 0 To 4 For j = 0 To 1 Console.WriteLine("a[{0},{1}] = {2}", i, j, a(i, j)) Next j Next i Console.ReadKey() End Sub End Module
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
a[0,0]: 0 a[0,1]: 0 a[1,0]: 1 a[1,1]: 2 a[2,0]: 2 a[2,1]: 4 a[3,0]: 3 a[3,1]: 6 a[4,0]: 4 a[4,1]: 8
Matriz irregular
Una matriz irregular es una matriz de matrices. El siguiente código muestra la declaración de una matriz irregular denominada puntuaciones de enteros –
Dim scores As Integer()() = New Integer(5)(){}
El siguiente ejemplo ilustra el uso de una matriz dentada:
Module arrayApl Sub Main() 'a jagged array of 5 array of integers Dim a As Integer()() = New Integer(4)() {} a(0) = New Integer() {0, 0} a(1) = New Integer() {1, 2} a(2) = New Integer() {2, 4} a(3) = New Integer() {3, 6} a(4) = New Integer() {4, 8} Dim i, j As Integer ' output each array element's value For i = 0 To 4 For j = 0 To 1 Console.WriteLine("a[{0},{1}] = {2}", i, j, a(i)(j)) Next j Next i Console.ReadKey() End Sub End Module
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
a[0][0]: 0 a[0][1]: 0 a[1][0]: 1 a[1][1]: 2 a[2][0]: 2 a[2][1]: 4 a[3][0]: 3 a[3][1]: 6 a[4][0]: 4 a[4][1]: 8
La clase Array
La clase Array es la clase base para todas las matrices en VB.Net. Se define en el espacio de nombres del sistema. La clase Array proporciona varias propiedades y métodos para trabajar con matrices.
Propiedades de la clase Array
La siguiente tabla proporciona algunos de los más utilizados propiedades de El Formación clase –
No Señor | Nombre y descripción de la propiedad |
---|---|
1 |
IsFixedSize Obtiene un valor que indica si la matriz tiene un tamaño fijo. |
2 |
IsReadOnly Obtiene un valor que indica si Array es de solo lectura. |
3 |
Largo Obtiene un entero de 32 bits que representa el número total de elementos en todas las dimensiones de la matriz. |
4 |
Distancia larga Obtiene un entero de 64 bits que representa el número total de elementos en todas las dimensiones de la matriz. |
5 |
Rango Obtiene el rango (número de dimensiones) de la matriz. |
Métodos de la clase Array
La siguiente tabla proporciona algunos de los más utilizados métodos de El Formación clase –
No Señor | Nombre y descripción del método |
---|---|
1 |
Public Shared Sub Clear (matriz como matriz, índice como entero, longitud como entero) Establece un rango de elementos en la matriz en cero, falso o nulo, según el tipo de elemento. |
2 |
Subcopia pública compartida (sourceArray como matriz, destinationArray como matriz, longitud como entero) Copia un rango de elementos de una matriz comenzando en el primer elemento y los pega en otra matriz comenzando en el primer elemento. La longitud se especifica como un entero de 32 bits. |
3 |
Public Sub CopyTo (matriz como matriz, índice como entero) Copia todos los elementos de la matriz unidimensional actual en la matriz unidimensional especificada comenzando en el índice de matriz de destino especificado. El índice se especifica como un entero de 32 bits. |
4 |
Función pública GetLength (dimensión como entero) como entero Obtiene un entero de 32 bits que representa el número de elementos en la dimensión especificada de Array. |
5 |
Función pública GetLongLength (dimensión como entero) As Long Obtiene un entero de 64 bits que representa el número de elementos en la dimensión especificada de Array. |
6 |
Función pública GetLowerBound (dimensión como entero) como entero Obtiene el límite inferior de la dimensión especificada en Array. |
7 |
Función pública GetType como tipo Obtiene el tipo de la instancia actual (heredado de objeto). |
8 |
Función pública GetUpperBound (dimensión como entero) como entero Obtiene el límite superior de la dimensión especificada en Array. |
9 |
Función pública GetValue (índice como entero) como objeto Obtiene el valor en la posición especificada en la matriz unidimensional. El índice se especifica como un entero de 32 bits. |
10 |
Función pública compartida IndexOf (matriz como matriz, valor como objeto) como entero Busca el objeto especificado y devuelve el índice de la primera aparición dentro de toda la matriz unidimensional. |
11 |
Public Shared Sub Reverse (matriz como matriz) Invierte la secuencia de los elementos en toda la matriz unidimensional. |
12 |
Public Sub SetValue (valor como objeto, índice como entero) Establece un valor para el elemento en la posición especificada en la matriz unidimensional. El índice se especifica como un entero de 32 bits. |
13 |
Subclasificación pública compartida (matriz como matriz) Ordena los elementos en una matriz unidimensional completa utilizando la implementación IComparable de cada elemento de la matriz. |
14 |
Función pública anulable ToString como cadena Devuelve una cadena que representa el objeto actual (heredado de Object). |
Para obtener una lista completa de las propiedades y métodos de la clase Array, consulte la documentación de Microsoft.
Ejemplo
El siguiente programa demuestra el uso de algunos de los métodos de la clase Array:
Module arrayApl Sub Main() Dim list As Integer() = {34, 72, 13, 44, 25, 30, 10} Dim temp As Integer() = list Dim i As Integer Console.Write("Original Array: ") For Each i In list Console.Write("{0} ", i) Next i Console.WriteLine() ' reverse the array Array.Reverse(temp) Console.Write("Reversed Array: ") For Each i In temp Console.Write("{0} ", i) Next i Console.WriteLine() 'sort the array Array.Sort(list) Console.Write("Sorted Array: ") For Each i In list Console.Write("{0} ", i) Next i Console.WriteLine() Console.ReadKey() End Sub End Module
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
Original Array: 34 72 13 44 25 30 10 Reversed Array: 10 30 25 44 13 72 34 Sorted Array: 10 13 25 30 34 44 72