Bienvenidos sean a este post, hoy hablaremos la clase que nos ayuda con los arrays.
En este post hablamos sobre como es un array tanto de una dimension como de mas dmensiones, pero hoy no volveremos a hablar sobre como son, como utilizarlas o los beneficios para eso tiene el post antes citado, en este post nos centraremos en las propiedades y metodos que disponemos para poder trabajar sobre ellos y un ejemplo practico para ver algunos de ellos, pasemos a mencionar las propiedades disponibles:
- isFixedSize, devuelve un valor booleano indicando si tiene un tamaño fijo o no.
- isReadOnly, indica si el array es de solo lectura o no
- isSynchronized, nos indica si el acceso al array esta sincronizado o no (thread seguro)
- Length, nos devuelve el total de los elementos del array
- LongLength, idem al anterior pero es un valor de tipo integer de 64 bits
- MaxLength, nos devuelve el valor maximo de elementos que puede tener un array
- Rank, nos devuelve el tipo de array, por ejemplo si unidimensional nos devuelve 1, si es bidimensional 2 y asi
- SyncRoot, consigue un objeto que puede ser sincronizado con el array
Ahora pasemos a ver algunos de los metodos que tenemos disponibles:
- AsReadOnly, devuelve un contenedor de solo lectura para el array especificado
- Clear, limpia el contenido de un array
- Clone, crea un clon del array
- ConvertAll, convierte un array de un tipo en otro tipo
- Copy, copia un rango de elementos de un array en otro array
- CopyTo, copia todos los elementos de un array en otro
- Empty, devuelve un array vacio
- Fill, completa el array con un valor informado
- Find, nos devuelve la primer coincidencia del elemento que busquemos
- FindAll, nos devuelve todas las coincidencias del patron que buscamos
- FindLast, nos devuelve la ultima coincidencia del elemento que busquemos
- ForEach, aplica un foreach al array
- GetLength, nos devuelve el total de elementos de un array
- GetType. nos devuelve el tipo de dato de la instancia
- IndexOf, busca un elemento y nos devuelve la posicion de la primera coincidencia
- LastIndexOf, idem al anterior pero devuelve la ultima coincidencia
- Resize, nos permite cambiar el total de elementos de un array
- Reverse, invierte el orden de los elementos en un array
- Sort, ordena los elementos de un array
- ToString, nos devuelve una cadena informando el tipo de array
Nota: A medida que vaya subiendo los posts creare un link en esta pagina.
Mas alla de que iremos explicando cada uno de ellos vamos a crear un pequeño ejemplo para ver como trabaja, para ello crearemos un archivo con el nombre de arreglo.cs y le agregaremos el siguiente codigo:
arreglo.cs
using System;
public class Program
{
static int i=0;
static void Main()
{
string[] nombres = {"tinchicus","javier","ariel","enzo"};
string[] copia = Array.Empty<string>();
Array.Resize(ref copia, nombres.GetLength(0));
Array.Copy(nombres, copia, 4);
Array.Sort(nombres);
Array.ForEach(nombres, mostrar);
Console.WriteLine("================");
i = 0;
Array.Reverse(nombres);
Array.ForEach(nombres, mostrar);
Console.WriteLine("================");
for(int j=0; j < copia.Length; j++)
Console.WriteLine("pos #{0}: {1}", j, copia[j]);
}
static void mostrar(string n)
{
Console.WriteLine("pos #{0}: {1}", i, n);
i++;
}
}
En este codigo aplicaremos algunos metodos y propiedades, primero definiremos una variable de tipo static que usaremos en la funcion por fuera del Main, vamos a comentar la misma antes del codigo principal, esta recibira un valor automaticamente (ya veremos porque) y en el bloque mostraremos el valor de la variable estatica que definimos al comienzo y luego el valor que recibimos para luego incrementar el valor de la variable, pasemos al Main donde primero definiremos un array de tipo string con unos valores, luego definiremos otra variable vacia por medio de Empty, lo siguiente sera cambiar su tamaño a la misma que el array donde estan los nombres para lo cual usaremos al metodo Resize y para sabe cual es el tamaño usamos a GetLength, el cero corresponde a su dimension, por ultimo copiaremos todos los elementos del primer array al segundo array, ahora vamos a trabajar con otros metodos, el primero de ellos sera para ordenar lexicograficamente el contenido del array (Sort), despues por medio de ForEach le enviaremos cada valor a la funcion comentado al principio, mosrando el resultado del metodo Sort, despues reiniciamos el valor de la variable estatica, aplicamos al metodo Reverse en el primer array y lo volvemos a mostrar por medio ForEach tal como hicimos antes, por ultimo por medio de un bucle for mostraremos el contenido que copiamos por medio del metodo Copy, observen que para establecer el limite usamos a Length para saber cuantos elementos contiene el array, con todo esto comentado pasemos a compilar y veamos su salida:
C:\Users\tinchicus>arreglo.exe
pos #0: ariel
pos #1: enzo
pos #2: javier
pos #3: tinchicus
================
pos #0: tinchicus
pos #1: javier
pos #2: enzo
pos #3: ariel
================
pos #0: tinchicus
pos #1: javier
pos #2: ariel
pos #3: enzo
C:\Users\tinchicus>
Observen que en el primer caso se ordeno alfabeticamente los nombres del array, en el segundo caso invierto el orden que nos quedo del metodo anterior y en el tercer caso vemos como era el array original porque trabajamos con la copia y esta no fue afectada por los metodos anteriores, estas son algunas posibilidades de como trabajar con arrays, en los proximos dias iremos viendo cada uno de ellos.
En resumen, les he citado las propiedades y metodos que disponemos para trabajar con los arrays del lenguaje, en los proximos dias ire subiendo la explicacion de cada uno de ellos, y les dejo un pequeño ejemplo donde ponemos varios de estos metodos y propiedades en accion, espero les sea de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
