90 - Colección : List<T> |
La clase List<T> nos facilita administrar un conjunto de datos en forma similar a un vector por medio de subíndices.
Esta clase trae una serie de ventajas con respecto a los vectores:
Como desventaja podemos hacer notar que los tiempos de redimensionar la colección son costosos.
Confeccionar un programa que cree un objeto de la clase List<T> y llamar a su métodos principales para insertar, consultar y eliminar elementos de la colección.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ProblemaList1
{
class Program
{
private static void ImprimirColeccion(List<int> lista)
{
for (int x = 0; x < lista.Count; x++)
Console.Write(lista[x] + "-");
Console.WriteLine();
}
private static bool BorrarSiCumple(int valor)
{
if (valor > 100)
return true;
else
return false;
}
static void Main(string[] args)
{
List<int> lista1 = new List<int>();
Console.WriteLine("Cantidad de elementos de la colección:" + lista1.Count);
lista1.Add(10);
lista1.Add(20);
lista1.Add(30);
lista1.Add(500);
lista1.Add(400);
Console.WriteLine("Insertamos tres elementos en la colección");
ImprimirColeccion(lista1);
lista1.Insert(0, 100);
Console.WriteLine("Luego de insertar un elemento en la posición 0");
ImprimirColeccion(lista1);
Console.WriteLine("Luego de eliminar la primer componente que almacena un 10");
lista1.Remove(10);
ImprimirColeccion(lista1);
Console.WriteLine("Luego de eliminar el elemento de la posición 0");
lista1.RemoveAt(0);
ImprimirColeccion(lista1);
lista1.RemoveAll(BorrarSiCumple);
Console.WriteLine("Luego de borrar todos los elementos mayores a 100");
ImprimirColeccion(lista1);
for (var x = 1; x <= 10; x++)
lista1.Add(x);
Console.WriteLine("Luego de insertar al final los valores del 1 al 10");
ImprimirColeccion(lista1);
Console.WriteLine("Luego de eliminar 3 elementos desde la posición 1");
lista1.RemoveRange(1, 3);
ImprimirColeccion(lista1);
lista1.Sort();
Console.WriteLine("Luego de ordenar la colección");
ImprimirColeccion(lista1);
lista1.Clear();
Console.WriteLine("Luego de borrar toda la colección");
Console.ReadKey();
}
}
}
Como vemos la sintaxis para crear un objeto de la clase List<T> con elementos enteros es:
List<int> lista1 = new List<int>();
El objetivo de cada uno de los métodos está indicado mediante un mensaje en el mismo programa:

Recordar que cuando recorremos una colección en forma completa es más común utilizar la estructura repetitiva foreach en lugar de for:
private static void ImprimirColeccion(List<int> lista)
{
foreach(var elemento in lista)
Console.Write(elemento + "-");
Console.WriteLine();
}