Inicializar una lista con valores en C#

Syed Hassan Sabeeh Kazmi 12 octubre 2023
  1. Use la clase List<T> para inicializar una lista con valores en C#
  2. Utilice el método List.Add() para inicializar una lista con valores en C#
  3. Utilice los inicializadores de colección de C# para inicializar una lista con valores
Inicializar una lista con valores en C#

Este tutorial le enseñará diferentes métodos para inicializar una lista y manejar sus detalles de implementación. C# permite a los programadores crear instancias de una lista, inicializarla con la palabra clave nueva y realizar asignaciones de miembros en una sola declaración.

El objetivo principal de este tutorial es familiarizar a los desarrolladores de C# con las listas genéricas y su implementación mediante la clase de colección List<T>. La clase genérica List<T> pertenece al espacio de nombres System.Collections.Generic y es una de las clases de colección más simples definidas por .NET Framework.

Una lista presenta una lista ordenada simple de elementos con la capacidad de almacenar múltiples tipos de objetos. La clase List<T> en C# implementa las interfaces ICollection, IEnumerable, IList, ICollection<T>, IEnumerable<T> e IList<T>.

Use la clase List<T> para inicializar una lista con valores en C#

La T en la clase List<T> representa la declaración que indica la interconectividad de la clase con ciertos tipos. La declaración de la clase de lista (List<T> listName; // declaración) aclara con qué tipo de datos trabajará y manipulará.

Utilice la palabra clave nueva con el constructor predeterminado para inicializar una lista vacía que se almacenará temporalmente en la variable listaNombre (listaNombre = nueva Lista<T>(); // inicialización de la lista). Como la capacidad predeterminada de una lista es cero elementos, puede asignar una capacidad diferente a una lista con la útil propiedad list.Capacity<T>.

La capacidad de una lista es variable y se puede reducir con la ayuda del método List<T>.TrimExcess o configurando explícitamente la siguiente sintaxis para inicializar una lista de objetos fuertemente tipados a los que se puede acceder fácil y eficientemente mediante el índice en C#.

List<T>.Capacity` property. Use `new List<Type> {Value1, Value2, ..., ValueN};

Código de ejemplo:

using System;
using System.Collections.Generic;

public class listInitialization {
  public static void Main(string[] args) {
    // array as a parameter
    string[] array = { "value1", "value2", "value3" };

    // list initialization with values
    List<string> expList = new List<string>(array);

    // an alternative approach to initialize a list with values using the `List<T>` class | it is
    // called single-line list initialization with values
    List<string> expListAlt = new List<string>() { "value1", "value2", "value3" };

    // display the `expList` list
    Console.WriteLine("You initialized a list with " + expList.Count + " values.");
  }
}

Producción :

You initialized a list with 3 values.

La interfaz List<T> es el equivalente genérico de la clase ArrayList en C# y utiliza una matriz que se puede aumentar dinámicamente según los requisitos de cada uno. Como la capacidad de una lista se puede aumentar a dos mil millones de elementos en un sistema de 64 bits, puede implementar su sincronización personalizada para permitir que múltiples subprocesos accedan a ella para la manipulación de valores (lectura y escritura) que garantiza la seguridad del subproceso al bloquear una lista.

Utilice el método List.Add() para inicializar una lista con valores en C#

La sintaxis de la lista es confusa al principio, pero es ideal para los programas de C# que carecen de restricciones estrictas de memoria o rendimiento. Puede usar el método List.Add() para agregar nuevos elementos a la lista después de su declaración, pero también puede crear elementos en el momento de la declaración.

Crear una lista de cadenas con una capacidad de 0 con la ayuda de un constructor sin parámetros es una forma universal de inicialización de listas. Puede usar el método Add() de la clase List para agregar varios valores de cadena a la lista.

Código de ejemplo:

using System;
using System.Collections.Generic;

public class listInitialization {
  public static void Main(string[] args) {
    // using `Add()` method to initialize a list with string values
    List<string> expList = new List<string>();
    expList.Add("value1");
    expList.Add("value2");
    expList.Add("value3");
    expList.Add("value4");
    expList.Add("value5");

    // display the `expList` list
    Console.WriteLine("You initialized a list with " + expList.Count + " values.");
  }
}

Producción :

You initialized a list with 5 values.

Lo más interesante de este método es que comprueba automáticamente la capacidad de la lista y la redimensiona cuando lo considera necesario. Agrega valor al final de la lista y devuelve el índice del valor para que sea más fácil ampliar su capacidad.

Utilice los inicializadores de colección de C# para inicializar una lista con valores

La sintaxis Collection initializer se introdujo por primera vez en C# 3.0 y, desde entonces, ha sido útil para asignar valores a las colecciones. Es una sintaxis abreviada que usa la notación de corchetes para inicializar una lista, y cuando se trata de la declaración, todos sus valores se asignan a la vez.

En general, se sabe que es una notación abreviada para llamar al método Add() varias veces por parte del compilador de C#. Puede inicializar una lista usando List<string> name = new List<string> y usar corchetes para definir sus valores como {new Element() {Id = 1, Name = "first"} completando objetos de la clase Elemento.

Los inicializadores de objetos individuales le permiten crear una lista y completarla con un conjunto inicial de valores encerrados entre llaves y separados por comas. Crear una lista en C# a partir de un conjunto de valores conocidos se volvió increíblemente fácil.

Puede identificar un inicializador de colección utilizando la palabra clave From seguida de llaves {}, similar a la sintaxis literal de matriz. Consiste en una lista de valores separados por comas encerrados entre llaves {}, precedidos por la palabra clave De.

Código de ejemplo:

using System;
using System.Collections.Generic;

public class listInitialization {
  public static void Main(string[] args) {
    // using `C# Collection Initializers` to initialize a list with values
    List<Element> expList = new List<Element>() { new Element() { Id = 1, Name = "value1" },
                                                  new Element() { Id = 2, Name = "value2" },
                                                  new Element() { Id = 3, Name = "value3" },
                                                  new Element() { Id = 4, Name = "value4" } };

    // display the `expList` list
    Console.WriteLine("You initialized a list with " + expList.Count + " values.");
  }
}

// create a class to define list values
public class Element {
  public int Id { get; set; }
  public string Name { get; set; }
}

Producción :

You initialized a list with 4 values.

Este tutorial le ha enseñado cómo crear e inicializar una lista con valores de cadena. Este tutorial proporcionó una introducción completa a la inicialización de listas con valores y contiene ejemplos de código C# compilables para aclarar los conceptos principales de la inicialización de listas.

Los programas de C# a menudo hacen cosas simples, como leer números, y con una lista, puede inicializar y agregar estos elementos a medida que los encuentre. Los inicializadores de lista se volvieron importantes cuando se asignan valores a cualquier campo accesible de propiedades de una lista en el momento de la creación sin invocar un constructor seguido de declaraciones de asignación.

Syed Hassan Sabeeh Kazmi avatar Syed Hassan Sabeeh Kazmi avatar

Hassan is a Software Engineer with a well-developed set of programming skills. He uses his knowledge and writing capabilities to produce interesting-to-read technical articles.

GitHub

Artículo relacionado - Csharp List