¿Qué Son las Listas?

Imagina que tenemos una situación en la que queremos almacenar los nombres de todos los estudiantes que están tomando un determinado curso. La primera solución que se nos ocurre es crear un Array:
index.cs
123456using System; class Program { string[] studentNames = new string[50]; }
Sin embargo, si en algún momento hay más de 50 estudiantes, no podremos almacenar sus nombres. De manera similar, en una situación donde haya menos de 50 estudiantes, los espacios no ocupados en el arreglo serán un desperdicio de memoria; esto se convierte en un problema especialmente en arreglos grandes.
Aquí necesitamos una nueva estructura que pueda almacenar una cantidad variable de elementos. Afortunadamente, ya existe una estructura así, llamada Lista.
Las Listas son muy similares a los Arreglos, pero la cantidad de elementos almacenados en una lista es modificable.

Es posible modificar los elementos existentes en un Arreglo, sin embargo, no se pueden agregar nuevas entradas a este.
La siguiente es la sintaxis para declarar una lista vacía:

Con esta sintaxis se puede crear una lista para almacenar los nombres de los estudiantes:
index.cs
12345678910using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); } }
Es importante tener en cuenta que se debe importar el módulo Generic
para poder utilizar Listas.
index.cs
1using System.Collections.Generic;
Simplemente es necesario agregar esta línea debajo de using System;
para importar el módulo requerido.
Método Add()
Se pueden agregar elementos a una lista utilizando el método Add
:
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); } }
El código anterior agregará cuatro elementos a la lista students
.
Al igual que un arreglo de tipo string
solo puede contener elementos de tipo string
, una lista de tipo string
solo puede aceptar elementos de tipo string
.
Indexación
El primer elemento es Anna
, por lo tanto tendrá el índice 0
, mientras que Laura
tendrá el índice 1
y así sucesivamente. Los elementos de una lista pueden accederse mediante indexación al igual que en un arreglo:
index.cs
1234567891011121314151617using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); Console.WriteLine(students[2]); } }
Método Count()
Se puede obtener la longitud de una lista utilizando su atributo Count
:
index.cs
123456789101112131415161718using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); Console.WriteLine(students[2]); Console.WriteLine(students.Count); } }
Longitud dinámica
Tenga en cuenta que la longitud de una lista es dinámica (cambiable), por lo que varía a medida que agregamos elementos:
index.cs
1234567891011121314151617181920using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); Console.WriteLine(students.Count); students.Add("Anna"); Console.WriteLine(students.Count); students.Add("Laura"); Console.WriteLine(students.Count); students.Add("Jacob"); Console.WriteLine(students.Count); students.Add("Aron"); Console.WriteLine(students.Count); } }
Inicialización
También podemos inicializar una lista con algunos elementos utilizando la siguiente sintaxis:
List<dataType> listName = new List<dataType>{ element1, element2, … };
index.cs
12345678910111213141516using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; // It is still possible to add additional elements after initialization students.Add("Markus"); Console.WriteLine(students.Count); Console.WriteLine(students[4]); } }
Recorrido de listas
Recorrido de una lista de manera similar a como se recorre un arreglo
Uso de un bucle for
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; for (int i = 0; i < students.Count; i++) { Console.WriteLine(students[i]); } } }
Uso de un bucle foreach
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; foreach (string studentName in students) { Console.WriteLine(studentName); } } }
Para acortar la sintaxis de declaración, también se puede utilizar la declaración implícita. Recordando, una declaración explícita es cuando se especifica el tipo de dato durante la declaración de la variable.
index.cs
1float number = 7.9f;
Por otro lado, en la declaración implícita simplemente se puede utilizar la palabra clave var
y el compilador infiere automáticamente el tipo de dato de la variable según el valor asignado:
index.cs
1var number = 7.9f;
También se puede utilizar la declaración implícita al declarar listas:
index.cs
1var numbers = new List<int> { 1, 2, 3, 4, 5 };
1. ¿Cuál será la salida del siguiente código?
2. ¿Qué módulo se debe importar para utilizar listas?
3. ¿Qué método se utiliza para obtener el tamaño (longitud) de una lista?
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 2.04
¿Qué Son las Listas?
Desliza para mostrar el menú

Imagina que tenemos una situación en la que queremos almacenar los nombres de todos los estudiantes que están tomando un determinado curso. La primera solución que se nos ocurre es crear un Array:
index.cs
123456using System; class Program { string[] studentNames = new string[50]; }
Sin embargo, si en algún momento hay más de 50 estudiantes, no podremos almacenar sus nombres. De manera similar, en una situación donde haya menos de 50 estudiantes, los espacios no ocupados en el arreglo serán un desperdicio de memoria; esto se convierte en un problema especialmente en arreglos grandes.
Aquí necesitamos una nueva estructura que pueda almacenar una cantidad variable de elementos. Afortunadamente, ya existe una estructura así, llamada Lista.
Las Listas son muy similares a los Arreglos, pero la cantidad de elementos almacenados en una lista es modificable.

Es posible modificar los elementos existentes en un Arreglo, sin embargo, no se pueden agregar nuevas entradas a este.
La siguiente es la sintaxis para declarar una lista vacía:

Con esta sintaxis se puede crear una lista para almacenar los nombres de los estudiantes:
index.cs
12345678910using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); } }
Es importante tener en cuenta que se debe importar el módulo Generic
para poder utilizar Listas.
index.cs
1using System.Collections.Generic;
Simplemente es necesario agregar esta línea debajo de using System;
para importar el módulo requerido.
Método Add()
Se pueden agregar elementos a una lista utilizando el método Add
:
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); } }
El código anterior agregará cuatro elementos a la lista students
.
Al igual que un arreglo de tipo string
solo puede contener elementos de tipo string
, una lista de tipo string
solo puede aceptar elementos de tipo string
.
Indexación
El primer elemento es Anna
, por lo tanto tendrá el índice 0
, mientras que Laura
tendrá el índice 1
y así sucesivamente. Los elementos de una lista pueden accederse mediante indexación al igual que en un arreglo:
index.cs
1234567891011121314151617using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); Console.WriteLine(students[2]); } }
Método Count()
Se puede obtener la longitud de una lista utilizando su atributo Count
:
index.cs
123456789101112131415161718using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); Console.WriteLine(students[2]); Console.WriteLine(students.Count); } }
Longitud dinámica
Tenga en cuenta que la longitud de una lista es dinámica (cambiable), por lo que varía a medida que agregamos elementos:
index.cs
1234567891011121314151617181920using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); Console.WriteLine(students.Count); students.Add("Anna"); Console.WriteLine(students.Count); students.Add("Laura"); Console.WriteLine(students.Count); students.Add("Jacob"); Console.WriteLine(students.Count); students.Add("Aron"); Console.WriteLine(students.Count); } }
Inicialización
También podemos inicializar una lista con algunos elementos utilizando la siguiente sintaxis:
List<dataType> listName = new List<dataType>{ element1, element2, … };
index.cs
12345678910111213141516using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; // It is still possible to add additional elements after initialization students.Add("Markus"); Console.WriteLine(students.Count); Console.WriteLine(students[4]); } }
Recorrido de listas
Recorrido de una lista de manera similar a como se recorre un arreglo
Uso de un bucle for
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; for (int i = 0; i < students.Count; i++) { Console.WriteLine(students[i]); } } }
Uso de un bucle foreach
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; foreach (string studentName in students) { Console.WriteLine(studentName); } } }
Para acortar la sintaxis de declaración, también se puede utilizar la declaración implícita. Recordando, una declaración explícita es cuando se especifica el tipo de dato durante la declaración de la variable.
index.cs
1float number = 7.9f;
Por otro lado, en la declaración implícita simplemente se puede utilizar la palabra clave var
y el compilador infiere automáticamente el tipo de dato de la variable según el valor asignado:
index.cs
1var number = 7.9f;
También se puede utilizar la declaración implícita al declarar listas:
index.cs
1var numbers = new List<int> { 1, 2, 3, 4, 5 };
1. ¿Cuál será la salida del siguiente código?
2. ¿Qué módulo se debe importar para utilizar listas?
3. ¿Qué método se utiliza para obtener el tamaño (longitud) de una lista?
¡Gracias por tus comentarios!