Beruflich Dokumente
Kultur Dokumente
2.1 Arrays
A medida que aumenta la complejidad del programa que estamos desarrollando, se
hace necesario manipular una gran cantidad de variables y sus respectivos valores, pues
bien, en este punto aparecen unos elementos que nos harán la vida mucho más fácil: los
Arrays, también conocidos como Arreglos.
Podemos pensar en un array como un conjunto de variables de un determinado tipo (int,
bool, string, etc), por esto, los elementos de un array sólo deben poseer un tipo de dato
en particular. Por ejemplo, si en la declaración de un array especificamos que los
elementos que lo componen son de tipo int, no se podrán asignar elementos que no
sean de este tipo.
Los arrays que soporta C# están clasificados de acuerdo al número de dimensiones que
poseen: de una dimensión, de dos dimensiones (también conocidos como matrices o
tablas), multidimensionales, e incluso existen arrays de arrays. Para los propósitos de
este curso, solo es necesario que abordemos el primer tipo.
Una característica muy importante que tienen los arrays es que el primer elemento del
arreglo empieza por el índice 0, en pocas palabras:
“La primera posición de los elementos de un array es la posición 0”.
Antes de continuar debo aclarar algo: los arrays no son tipos de variables, son clases
por ahora quédate con ese dato. Más adelante hay una sección dedicada
exclusivamente a entender las clases.
Ahora que ya sabemos de qué se tratan los arrays, vamos a lo que nos gusta, el código
:D
www.gametopia.es
1 de 9
¿Cómo declarar e inicializar un Array?
Al igual que como lo hicimos anteriormente con las variables, los arrays se pueden
declarar siguiendo unos pasos determinados:
1. Declaración del tipo de dato acompañado de un paréntesis rectangular ([ ]).
2. Declaración del nombre del array.
compañada nuevamente del tipo de dato.
3. Uso de la palabra reservada “new” a
4. Declaración del tamaño del array.
Ejemplos:
● Un arreglo llamado “myIntArray”, de tipo entero y con un tamaño de 5:
int[] myIntArray = new int[5];
● Un arreglo llamado “myStringArray”, de tipo string y con un tamaño de 100:
string[] myStringArray = new string[100];
Al igual que las variables, los arrays pueden ser inicializados en el momento en que son
declarados, en este caso, no es necesario especificar el tamaño del array, ya que este
viene dado por el número de elementos de la lista de inicialización.
Para inicializar un array, es necesario agregar los valores de los elementos que lo
componen al final de su declaración, de la siguiente forma:
{elemento 0, elemento 1, elemento 2, …, elemento n-1}
www.gametopia.es
2 de 9
Ejemplos:
● int[] myIntArray = new int[] { 1, 2, 3, 4, 5 };
● string[] weekDays = new string[] { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
Una característica de los arrays en C#, es que cuando inicializas un array en el momento
de su declaración, permite usar un método abreviado, mira cómo quedarían los dos
ejemplos anteriores, usando este método:
Ejemplos:
● int[] myIntArray = { 1, 2, 3, 4, 5 };
● string[] weekDays = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
Cualquiera de las dos formas es válida, ya depende de tu gusto como programador
escoger cual te gusta más ^_^
Otro punto importante con los arrays es que al igual que las variables, pueden ser
declarados sin inicializarlos, sea porque al comienzo no sabes el tamaño que tendrá o
porque necesitas que sucedan ciertos eventos primero, lo importante y lo cual no debes
olvidar nunca, es que en el momento en que necesites definir su tamaño e inicializarlo,
debes usar si o si la palabra reservada “new”, es decir, no puedes usar el método
abreviado que vimos anteriormente.
Ejemplo:
int[] myNewArray;
myNewArray = new int[] { 1, 3, 5, 7, 9 }; // Forma correcta
//myNewArray = {1, 3, 5, 7, 9}; // Forma Incorrecta
www.gametopia.es
3 de 9
¿Cómo acceder y manipular los datos de un Array?
Una vez declarado un array, de inmediato podemos acceder a los datos que contiene,
tanto para lectura como para escritura. A continuación vamos a ver una serie de scripts
de C# en Unity3D como ejemplos, con los cuales entenderás mucho mejor estos
procesos, tanto para acceder a una posición específica, como para recorrer un array
completo haciendo uso de los bucles que ya viste en una sección anterior.
Lectura
1. Script de lectura de posición específica del array
Si se ejecuta este script, en la consola de Unity3D veríamos lo siguiente:
Como se puede ver en el script, para acceder a una posición específica de un
array, basta con nombrar el array, y en corchetes [ ] indicar la posición que
queremos consultar. ¿Simple no?
No lo olvides, el primer elemento del array está en la posición 0, en este caso, la
primera posición corresponde al elemento con valor “20”.
www.gametopia.es
4 de 9
El último elemento estará siempre en la posición “n-1”, donde n es el tamaño del
array. En este ejemplo como el tamaño del array es de 5, la última posición será:
n-1 = 5-1 = 4, es decir que la última posición corresponde al elemento con valor
“94”.
Tal vez en este momento ya te estés haciendo la siguiente pregunta, o sino me
gustaría que lo pienses por un momento:
“¿Qué pasará si pongo un número mayor de 5 en la consulta del array?”
Veamos lo que sucedería haciendo uso del siguiente script:
2. Script de lectura de posición mayor al tamaño del array: ¡Error!
Si se ejecuta este script, en la consola de Unity3D veríamos lo siguiente:
Efectivamente, se producirá un error porque el elemento que estarías
consultando no existe, ya que estarías en busca de la posición 10 de un array que
tiene 5 posiciones.
Ten siempre en cuenta esto ya que es un error muy común cuando se usan
arrays, y si por algún motivo te encuentras con ese error en la consola de
Unity3D, ya sabes por qué sucede y cómo arreglarlo :)
www.gametopia.es
5 de 9
Ahora imagina un caso en que necesitamos leer los valores de un array de 10,
100, 200 o incluso más posiciones, sería algo tedioso y además nada óptimo,
tener que consultar una a una cada posición.
Pues bien, lo mágico de la programación es que siempre existe algo que
simplifica las cosas. ¡Para trabajar con arrays muy grandes, nuestros amigos los
bucles llegan al rescate!
Veamos el siguiente script de ejemplo, esta vez, vamos a usar un array de tipo
string como muestra.
3. Script de lectura de un array haciendo uso del bucle “for”
Si se ejecuta este script, en la consola de Unity3D veríamos lo siguiente:
www.gametopia.es
6 de 9
Como puedes ver, al igual que que en el primer script de ejemplo, estamos
mostrando el valor de cada posición del array, pero en muchas menos líneas de
código, todo gracias al bucle “for”.
Recuerdas que al comienzo del documento decía que los arrays no son variables
sino clases? Ahora si observas detenidamente el ciclo for, en su valor máximo
está algo que dice “myGames.Length”. Esto es gracias a que “Length” es una
propiedad o atributo de la clase Arrray. ¡No te asustes!
En este momento aún no hemos visto el concepto de clases y seguro todos
estos términos de atributo, propiedades y demás, te suenen extraños y confusos,
no te preocupes, más adelante en el curso los explicaré de forma muy detallada
:)
Por el momento basta con que sepas que ese atributo “Length” nos permite
conocer el tamaño del array, de esta forma, haciendo uso del bucle “for”
podemos recorrer un array independientemente del tamaño que tenga.
En este ejemplo, “myGames.Length” sería igual a 10, si lo aplicaramos en el
anterior ejemplo, “intArray.Lenght” sería igual a 5. ¿Muy útil no? :)
Ahora que ya hemos visto todo el proceso de lectura de los elementos de un
array, vamos a ver cómo los podemos modificar.
Escritura
1. Script de escritura de posición específica del array
Si se ejecuta este script, en la consola de Unity3D veríamos lo siguiente:
www.gametopia.es
7 de 9
En este ejemplo, inicialmente se muestra el valor original de la posición 2, con el
que declaramos el array, es decir 89, luego para modificarlo basta con usar el
operador “=” e indicar la posición que queremos cambiar y su nuevo valor, en este
caso la posición 2 con un nuevo valor de 1.
2. Script de escritura de un array haciendo uso del bucle “for”
Si se ejecuta este script, en la consola de Unity3D veríamos lo siguiente:
www.gametopia.es
8 de 9
En este ejemplo, hemos usado el bucle “for” para cambiar cada uno de los
valores con los que habíamos inicializado el array “myGames”, sustituyendolos
por nuevos valores del mismo tipo “string”.
Con esto hemos terminado la explicación de los Arrays, ahora te invito a que veas el
video donde vamos a conocer cómo funcionan los Arrays de forma práctica. Espero que
te haya quedado clara la explicación acerca de estos elementos, ya que nos serán de
mucha ayuda en el momento de desarrollar nuestros juegos, y si no, recuerda que
siempre me puedes preguntar :D
www.gametopia.es
9 de 9