Lista generica y diccionario - FernandoCalmet/csharp-essential GitHub Wiki

Lista

Una List<T> representa una colección de objetos fuertemente tipados a los que se puede acceder por índice.

Para crear una instancia List<T>, necesitamos proporcionar un tipo entre los corchetes angulares:

List<int> numberList = new List<int>();
List<Student> students = new List<Student>();

Tiene dos constructores más que podemos usar para inicializar un objeto List. Con el primero, podemos configurar la capacidad inicial:

List<int> numbers = new List<int>(2);

Con el segundo, podemos completar nuestra lista con la colección IEnumerable:

int[] nums = new int[5] { 1, 2, 3, 4, 5 };
List<int> numbers = new List<int>(nums);

Para acceder a cualquier elemento podemos especificar su posición de índice:

int number = numbers[1];

Métodos y propiedades

El método Add agrega el elemento dentro de una lista:

List<int> numbers = new List<int>();
numbers.Add(34);
numbers.Add(58);
numbers.Add(69);

foreach (int number in numbers)
{
    Console.WriteLine(number);
}

AddRange agrega los elementos de la colección especificada al final de una lista:

List<int> numbers = new List<int>();
numbers.Add(34);
numbers.Add(58);
numbers.Add(69);

int[] nums = new int[] { 1, 22, 44 };

numbers.AddRange(nums);

foreach (int number in numbers)
{
     Console.WriteLine(number);
}

Contains determina si un elemento existe en la lista:

if(numbers.Contains(34))
{
     Console.WriteLine("The number 34 exists in a list");
}

El método IndexOf devuelve la posición de un elemento como un número entero. Si no se pudo encontrar un elemento, este método devuelve -1:

int index;
if((index = numbers.IndexOf(58)) != -1)
{
    Console.WriteLine($"The number 58 is on the index: {index}");
}

LastIndexOf es similar a un método anterior, excepto que devuelve una última aparición del elemento.

El método CopyTo copia toda la colección en una matriz compatible, comenzando desde el principio de esa matriz:

int[] copyArray = new int[6];

numbers.CopyTo(copyArray);

foreach (int copyNumber in copyArray)
{
     Console.WriteLine(copyNumber);
}

El método Remove elimina la primera aparición de un elemento específico de la lista:

numbers.Remove(69);

El método Clear borra todos los elementos de una lista:

numbers.Clear();

Podemos verificar cuántos elementos tiene una lista usando la propiedad Count:

Console.WriteLine(numbers.Count);

Diccionario

Dictionary representa una colección de claves y valores. Para instanciar un objeto podemos usar la siguiente sintaxis:

Dictionary<KeyType, ValueType> Name = new Dictionary<KeyType, ValueType>();

KeyType representa un tipo de nuestra clave en una colección. ValueType representa el valor asignado a la clave. Entonces, podemos extraer nuestro valor de una colección usando la clave dentro de los corchetes:

DictionaryName[key];

Dictionary tiene varios constructores que podemos usar para crear instancias de objetos:

Dictionary<string, int> dictExample = new Dictionary<string, int>();

Dictionary<string, int> dictExample1 = new Dictionary<string, int>(5); //to set initial size

Dictionary<string, int> dictExample2 = new Dictionary<string, int>(dictExample1); //accepts all the elements from created Key-Value collection

Métodos y propiedades

El método Add agrega el par clave-valor dentro de una colección:

Dictionary<string, int> dictExample = new Dictionary<string, int>();

dictExample.Add("First", 100);
dictExample.Add("Second", 200);
dictExample.Add("Third", 300);

foreach (var item in dictExample)
{
     Console.WriteLine(dictExample[item.Key]);
}

Remove elimina el par clave-valor de una colección en función de la clave especificada:

dictExample.Remove("Second");
foreach (var item in dictExample)
{
     Console.WriteLine(dictExample[item.Key]);
}

ContainsKey determina si una colección contiene una clave específica.

ContainsValue determina si una colección contiene un valor específico:

if(dictExample.ContainsKey("First"))
{
     Console.WriteLine("It contains key");
}

if(dictExample.ContainsValue(300))
{
      Console.WriteLine("It contains value");
}

El método Clear elimina todos los pares clave-valor de una colección:

dictExample.Clear();

Si queremos contar todos nuestros elementos dentro de una colección, podemos usar la propiedad Count. Si queremos obtener una colección de contener Keys o contener Values de un diccionario, podemos usar las propiedades Keys y Values:

Console.WriteLine(dictExample.Count);

foreach (var key in dictExample.Keys)
{
     Console.WriteLine(key);
}

foreach (var value in dictExample.Values)
{
     Console.WriteLine(value);
}
⚠️ **GitHub.com Fallback** ⚠️