Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Un array es un grupo de datos, del mismo tipo, los cuales están agrupados por un único
nombre (variable), y sus elementos pueden ser accesados por medio de índices. Los array
pueden ser de una o más dimensiones y al declararse se instancia un objeto de la subclase
System.Array. Una colección es un conjunto de objetos, los cuales pueden incrementarse o
disminuirse de forma dinámica. Por otro lado, las colecciones son clases del espacio de
nombres System.Collections.
Arreglos unidimensionales.
int[] arreglo;
Como los arreglos son objetos de la clase System.Array, cuando se declaran aún no se le
ha reservado un espacio de memoria, por lo tanto, es necesario instanciarlos y para esto
se utiliza el operador new. Por ejemplo, para instanciar un arreglo de tipo entero y 10
elementos, se debería escribir lo siguiente:
int[] números;
números= new int [10];
O también
int[] números=new int[10];
int[] números;
números= new int [3];
números [0]=10;
números [1]=24;
[2]=33;
- Inicializándolo directamente.
1
Arrays y Colecciones
Como los arreglos en C# son objetos y estos se derivan de la clase System.Array. Dicha
clase proporciona métodos y propiedades para manipular los arreglos. A continuación, se
relacionan algunas propiedades y métodos:
2
Arrays y Colecciones
Fuente: autor.
b) Codificación: dé doble clic sobre el botón para abrir el editor de código boton_Click y
escriba el siguiente código:
3
Arrays y Colecciones
Fuente: autor.
Los arreglos pueden tener dos (2) o más dimensiones (llamadas matrices), lo que permitirá guardar
información del mismo tipo en filas y columnas y cada dimensión se debe especificar con una
coma dentro de los corchetes [ ]. Para identificar un elemento en particular se debe especificar el
número de la fila y él número de la columna. Por ejemplo, para declarar un arreglo de dos
dimensiones se debe escribir lo siguiente:
int[ , ] matriz;
- Inicializándolo directamente.
int[ , ] numeros = new int[30, 20] { {11, 12}, {23, 24}, {35, 36} };
string[ , ] nombres=new string[2, 2]{{"Cristian","Ana"}, {"Alberto","Maria"} };
int[ , ] numeros = new int[ , ] { {11, 12}, {23, 24}, {35, 36} };
string[ , ] nombres=new string[ , ]{{"Cristian","Ana"}, {"Alberto","Maria"} };
una matriz 4 x 2.
Fuente: autor.
b) Codificación: dé doble clic sobre el botón para abrir el editor de código boton_Click y
escriba el siguiente código:
String. En cada iteración del primer ciclo for a la variable tabla se le adiciona una etiqueta
<tr> para crear una fila y cuando se realiza una iteración en el segundo ciclo for, a la
variable tabla se le adiciona una etiqueta <td> para crear una columna, más el contenido
del arreglo en la posición [i,j], además el cierre de la columna con la etiqueta </td>. Al
salir nuevamente al primer ciclo for se le adiciona a tabla el cierre de la fila con la etiqueta
</tr>.
Al salir de los ciclos for a la variable tabla se le adiciona el cierre de la tabla con </table>
y se le asigna al control lbltabla en su propiedad Text el contenido de dicha variable.
Fuente: autor.
Colecciones.
Interface Descripción
IEnumerable Proporciona la capacidad para recorrer una colección a
través de sus elementos, por medio de una sentencia foreach.
ICollection Proporciona la capacidad para obtener el número de
elementos de la colección y de copiar elementos a un simple
arreglo.
IList Proporciona una lista de los elementos de la colección con
6
Arrays y Colecciones
Clase ArrayList.
7
Arrays y Colecciones
Fuente: autor.
b) Codificación: dé doble clic sobre el botón para abrir el editor de código boton_Click y
escriba el siguiente código:
OBSERVACIÓN: sí al utilizar alguna clase de .NET, esta aparece con error, es necesario
importar el espacio de nombres respectivo. Para este ejemplo, el error se muestra al crear
la instancia de la clase ArrayList, acérquese con el cursor del mouse sobre el error para
visualizar un cuadro de dialogo, de click sobre la flecha y seleccione using
System.Collections; o using system.Collections.ArrayList;
}
protected void boton1_Click(object sender, EventArgs e) {
int numero;
if (int.TryParse(txtnumero.Text, out numero)) {
ColeccionArrayList.valores.Add(numero);
lbltexto.Text = "se guardó en la posición:" + ColeccionArrayList.i;
ColeccionArrayList.i = ColeccionArrayList.i + 1;
}
txtnumero.Text = "";
txtnumero.Focus();
if (ColeccionArrayList.i >= 10)
{
txtnumero.Enabled = false;
foreach (int dato in ColeccionArrayList.valores)
txtcapturados.Text = txtcapturados.Text + dato + "\n";
}
}
}
Inicialmente se definen dos variables estáticas: valores de tipo ArrayList e i de tipo int inicializada
en cero.
En el evento click de botón se define una variable entera llama numero. Con una
estructura if se evalúa sí lo digitado es un número por intermedio de la función
int.TryParse(). Si la condición es verdadera, se adiciona al ArrayList valores el valor
digitado, además, se imprime la posición donde se guardó y se incrementa el valor de i en
1. Obsérvese que se utiliza el nombre de la clase para ir actualizando en el servidor los
valores de los objetos valores e i. Cada vez que se digita un valor y se pulsa el botón el
objeto txtnumeros se limpia y el cursor se posiciona en dicho objeto.
Con otra estructura if se evalúa si el valor de i es i es mayor o igual que 10. Si la condición
se cumple, se deshabilita el objeto txtnumeros (enabled=false) y con un foreach se
imprime los datos capturados en el objeto valores.
8
Arrays y Colecciones
Fuente: autor.
Clase Queue.
La colección Queue (cola) es útil cuando se requiere un acceso aleatorio a los datos o cuando se
quiere un orden determinado por el momento en que los elementos fueron adicionados a la
colección. Cada nuevo elemento se adicionar al principio de la colección y únicamente se puede
eliminar el último elemento. Esta colección se conoce como FIFO (primero en entrar – primero en
salir - First Input First Output). Los métodos más importantes son:
9
Arrays y Colecciones
Fuente: autor.
b) Codificación: dé doble clic sobre el botón para abrir el editor de código boton_Click y
escriba el siguiente código:
}
protected void btnadicionar_Click(object sender, EventArgs e) {
txtlista.Text = "";
object elemento = txtelemento.Text;
cola.Enqueue(elemento);
foreach(string valor in cola)
txtlista.Text = txtlista.Text + valor + "\n";
txttotal.Text = cola.Count.ToString();
}
protected void btnpeek_Click(object sender, EventArgs e) {
txtlista.Text = "";
txtpeek.Text=cola.Peek().ToString();
foreach (Object valor in cola)
txtlista.Text = txtlista.Text + valor + "\n";
txttotal.Text = cola.Count.ToString();
}
protected void btndequeue_Click(object sender, EventArgs e) {
txtlista.Text = "";
cola.Dequeue();
txtdequeue.Text = cola.Peek().ToString();
foreach (Object valor in cola)
txtlista.Text = txtlista.Text + valor + "\n";
txttotal.Text = cola.Count.ToString();
}
}
Inicialmente se define una instancia global, publica y estática de la clase Queue llamada
cola. Luego se escribe el código para los tres controles Button en su respectivo evento
Click.
10
Arrays y Colecciones
Fuente: autor.
11
Arrays y Colecciones
Fuente: autor.
Fuente: autor.
Clase Stack.
La colección Stack (pila) adiciona un nuevo elemento al final de esta y únicamente se puede
eliminar el último elemento. Esta colección se conoce como LIFO (último en entrar – primero en
salir - Last Input First Output). Los métodos más importantes son:
Fuente: autor.
b) Codificación: dé doble clic sobre el botón para abrir el editor de código boton_Click y
escriba el siguiente código:
}
protected void btnadicionar_Click(object sender, EventArgs e) {
txtlista.Text = "";
object elemento = txtelemento.Text;
pila.Push(elemento);
foreach (string valor in pila)
txtlista.Text = txtlista.Text + valor + "\n";
txttotal.Text = pila.Count.ToString();
}
protected void btnpeek_Click(object sender, EventArgs e)
{
txtlista.Text = "";
txtpeek.Text = pila.Peek().ToString();
foreach (Object valor in pila)
txtlista.Text = txtlista.Text + valor + "\n";
txttotal.Text = pila.Count.ToString();
}
protected void btnpop_Click(object sender, EventArgs e)
{
txtlista.Text = "";
13
Arrays y Colecciones
pila.Pop();
txtpop.Text = pila.Peek().ToString();
foreach (Object valor in pila)
txtlista.Text = txtlista.Text + valor + "\n";
txttotal.Text = pila.Count.ToString();
}
}
Inicialmente se define una instancia global, publica y estática de la clase Stack llamada
pila. Luego se escribe el código para los tres controles Button en su respectivo evento
Click.
Btnadicionar: primeramente, se le asigna un espacio en blanco al control txtlista
en su propiedad Text, luego se define una variable llamada elemento de tipo Object
a la cual se le asigna el contenido del control txtelemento y utilizando el método
Push se adiciona dicho elemento a la Stack, después con un ciclo foreach se
imprimen cada uno de los elementos de la Stack, los cuales son adicionados al
control txtlista. Por último, se le asigna la cantidad de elementos de la Stack al
objeto txttotal por intermedio del método Count().
Btnpeek: primero, se le asigna un espacio en blanco al control txtlista en su
propiedad Text, luego se le asigna al objeto txtpeek lo que retorne el método Peek
(primer elemento de la Stack), después con un ciclo foreach se imprimen cada uno
de los elementos de la Stack, los cuales son adicionados al control txtlista. Por
último, se le asigna la cantidad de elementos de la Stack al objeto txttotal por
intermedio del método Count().
Btnpop: inicialmente se le asigna un espacio en blanco al control txtlista en su
propiedad Text, luego se ejecuta el método Pop (elimina un elemento de la Stack),
además, se le asigna al objeto txtpop lo que retorne el método Peek (primer
elemento de la Stack), después con un ciclo foreach se imprimen cada uno de los
elementos de la Stack, los cuales son adicionados al control txtlista. Por último, se
le asigna la cantidad de elementos de la Stack al objeto txttotal por intermedio del
método Count().
Fuente: autor.
14
Arrays y Colecciones
Fuente: autor.
Fuente: autor.
Clase Hashtable.
Fuente: autor.
b) Codificación: dé doble clic sobre el botón para abrir el editor de código boton_Click y
escriba el siguiente código:
}
16
Arrays y Colecciones
17
Arrays y Colecciones
Fuente: autor.
Fuente: autor.
Ejercicios propuestos.
1. Crear un sitio Web ASP.NET, que permita capturar en un vector 10 números e imprima
por medio de una función el vector ordenado.
2. Diseñar un sitio Web ASP.NET, que permita capturar en un vector 10 números e imprima
por medio de funciones el mayor, el menor y los números pares del vector.
3. Implementar un sitio Web ASP.NET, que emplee recursividad para calcular la suma de los
elementos de un vector.
4. Elaborar un sitio Web ASP.NET, que emplee recursividad para calcular el mayor de los
elementos de un vector.
5. Realizar un sitio Web ASP.NET, que solicite a un usuario 5 datos numéricos enteros, los
guarde en un array, luego solicite digitar un nuevo valor numérico entero e imprima el
valor mayor más cercano a él, o el texto Ninguno es mayor, si ninguno valor del array lo
es.
18
Arrays y Colecciones
12. Elaborar un sitio Web ASP.NET, que permita imprimir la siguiente serie:
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
19