Descripción general de colecciones en C #

En este artículo, vamos a aprender sobre las colecciones en C #. Las clases de recopilación son clases especializadas para recuperación y almacenamiento de datos. Asigna memoria dinámicamente a los elementos. Con la ayuda de este, podemos realizar varias operaciones como actualizar, recuperar, almacenar, etc. Las colecciones son similares a una matriz. Aquí no necesitamos definir el tamaño de antemano a diferencia de una matriz.

Hay 3 formas de trabajar con colecciones que se detallan a continuación.

  • System.Collections.Generic classes
  • System.Collections.Concurrent classes
  • Clases System.Collections

Ejemplos de colecciones en C #

A continuación se muestran algunos ejemplos de varios tipos de colección en C #: -

Ejemplo # 1 - ArrayList

Es una colección de System.Collections. Permite mantener los datos de múltiples tipos de datos y, a medida que se agregan, se expande automáticamente.

Código:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ArrayListExample
(
class Program
(
static void Main(string() args)
(
var data = new ArrayList(); //arraylist collection
data.Add("Demo"); // add element
data.Add(1);
data.Add(5);
data.Add(26);
data.Add(56.4);
data.Add(32);
data.Remove(5); // remove element
foreach (object obj in data) // iteration
(
Console.WriteLine(obj);
Console.ReadLine();
)
)
)
)

En el ejemplo anterior, hay una colección de tipo ArrayList. Hay algunos elementos en ArrayList. Add () y Remove () son los métodos que se utilizan para agregar y eliminar los elementos de la colección respectivamente. foreach se usa para la iteración y muestra los valores.

Salida:

Ejemplo # 2 - Usaremos la operación de lista aquí

Es una colección de System.Collections.Generic namespace.

Código:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
(
class Program
(
static void Main(string() args)
(
var value = new List(); // list collection
value.Add("Cricket"); // add element
value.Add("Football");
value.Add("Volleyball");
value.Add("Hockey");
value.Add("Basketball");
value.Add("Tennis");
value.Remove("Football"); // remove element
value.Remove("Tennis");
value.Insert(3, "Badminton"); // insert element
foreach (string st in value)
(
Console.WriteLine(st);
Console.ReadLine();
)
)
)
)

En el ejemplo anterior, la colección es de un tipo de lista. Los métodos Add () y Remove () se utilizan para agregar o eliminar los elementos de la lista respectivamente. Insert () también se utiliza para insertar el elemento en la lista en un índice definido. Foreach se usa para iterar y mostrar los valores.

Salida:

Ejemplo # 3: Lista ordenada

Se compone de clave y valores en una colección.

Código:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
(
class Program
(
static void Main(string() args)
(
var value = new SortedList(); // sortedlist collection
value.Add("java", 3); // add element
value.Add("javascript", 4);
value.Add("c-sharp", 5);
value.Add("dotnet", 25);
value.Add("python", 27);
value.Add("typescript", 57);
foreach (var pair in value)
(
Console.WriteLine(pair);
Console.ReadLine();
)
)
)
)

En el ejemplo anterior, la colección es del tipo sortedlist. Hay varios pares de claves y valores en la lista. Básicamente representa el par ordenado de claves y valores.

Salida:

Ejemplo 4: lista vinculada

Básicamente permite el acceso secuencial de los elementos.

Código:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
(
class Program
(
static void Main(string() args)
(
var value = new LinkedList(); // linkedlist collection
value.AddLast(13); // add element
value.AddLast(33);
value.AddLast(23);
value.AddLast(51);
value.AddLast(60);
value.AddFirst(4);
value.AddFirst(6);
LinkedListNode node = value.Find(51); // find the node
value.AddBefore(node, 40);
foreach (int num in value)
(
Console.WriteLine(num);
Console.ReadLine();
)
)
)
)

En el ejemplo anterior, la colección es de tipo Linkedlist. AddLast () se usa para colocar el elemento en la última posición, mientras que AddFirst () se usa para colocar el elemento en la primera posición de la lista. Linkedlist consta de un nodo. Find () se utiliza para encontrar el valor y el valor posicional antes de él.

Salida:

Ejemplo # 5 - Diccionario

Consiste en un par único de claves y valores.

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
(
class Program
(
static void Main(string() args)
(
var pair = new Dictionary(); // dictionary collection
pair.Add("in", "India"); // add keys and values
pair.Add("af", "Africa");
pair.Add("us", "United States");
pair.Add("ja", "Japan");
pair.Add("ch", "China");
pair.Add("ca", "Canada");
Console.WriteLine("Keys present in the dictionary:");
var key = new List(pair.Keys);
foreach (string k in key)
(
Console.WriteLine("(0)", k);
)
Console.WriteLine("Values present in the dictionary:");
var value = new List(pair.Values);
foreach (string val in value)
(
Console.WriteLine("(0)", val);
)
Console.ReadLine();
)
)
)

En el ejemplo anterior, la colección es del tipo diccionario que contiene la clave y sus valores. Foreach se usa para la iteración de claves y valores.

Salida

Ejemplo # 6 - Pila

Se basa en la estructura Último en entrar, primero en salir. El último elemento de la cola es el primero en eliminarse.

Código:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
(
class Program
(
static void Main(string() args)
(
var value = new Stack(); // stack collection
value.Push(10); // adding the element
value.Push(40);
value.Push(33);
value.Push(62);
value.Push(48);
value.Push(21);
value.Push(31);
Console.WriteLine(value.Pop());
Console.WriteLine(value.Peek());
Console.WriteLine();
foreach (int item in value)
(
Console.WriteLine(item);
Console.ReadLine();
)
)
)
)

En el ejemplo anterior, la colección es de tipo stack. Push () se utiliza para insertar el elemento en la parte superior. Pop () es para eliminar y devolver el elemento y Peek () es para devolver el elemento superior de la pila.

Salida:

Ejemplo # 7 - Cola

Se basa en la estructura Primero en entrar, primero en salir. El primer elemento de la cola es el primero en eliminarse.

Código:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
(
class Program
(static void Main(string() args)
(
var value = new Queue(); // queue collection
value.Enqueue("Item 1"); // add element
value.Enqueue("Item 2");
value.Enqueue("Item 3");
value.Enqueue("Item 4");
value.Enqueue("Item 5");
value.Enqueue("Item 6");
value.Enqueue("Item 7");
Console.WriteLine(value.Dequeue());
Console.WriteLine(value.Peek());
Console.WriteLine();
foreach (string num in value)
(
Console.WriteLine(num);
Console.ReadLine();
)
)
)
)

En el ejemplo anterior; La colección es de tipo cola. Enqueue () es para el elemento de inserción al final de la cola. Dequeue () es para eliminar el elemento desde el comienzo de la cola . Peek () se usa para devolver el artículo.

Salida:

Entonces, hay muchas maneras en que podemos usar las colecciones. Las colecciones son similares a una matriz. Aquí no necesitamos definir el tamaño de antemano a diferencia de la matriz.

Artículos recomendados

Esta ha sido una guía de Colecciones en C #. Aquí discutimos la descripción general y los diferentes ejemplos de Colecciones en C # con implementación de código y salida. También puede echar un vistazo a los siguientes artículos para obtener más información:

  1. Guía completa para ordenar en C #
  2. Métodos de iteradores en C #
  3. Tipos de patrones en C #
  4. ¿Cómo funcionan los punteros en C #?