Saltar al contenido

VB.Net: matrices

octubre 19, 2021
arrays

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.

Matrices en VB.Net

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

close