Botón para abrir el Menú Botón para cerrar el Menú
Logo da empresa Alura
Iniciar Sesión Nuestros Planes
Formaciones Conoce a Luri
  • Programación _
  • Front End _
  • Data Science _
  • DevOps _
  • Innovación y Gestión _
Artículos de Tecnología > Programación

Listas en C#

Elias Ribeiro
Elias Ribeiro
08/11/2023

Compartir

Mira este artículo:
  1. Comenzando la implementación
  2. Modificando la lista
  3. Eliminando un elemento de la lista
  4. Conclusión

img-capa

List(una lista) es una colección de objetos que mantiene el orden en el que se agregan. ¿Qué estructura de datos estamos usando detrás de una lista? ¿Cuándo usarla? Esto es lo que veremos aquí con el código directamente en C#.

Nos llamaron para resolver el problema de una tienda que tiene dificultades para almacenar los datos de sus productos, ya que cuenta con un sistema de producción. Sin embargo, este sistema no incluye la parte de almacenamiento del producto.

Debido a esto, en ocasiones faltan datos o hay datos incorrectos, como por ejemplo, la cantidad de productos en el inventario no coincide con las notas. Luego de analizar todo el contexto decidimos utilizar C# para que sea compatible con el sistema que tiene la empresa.

Lo primero que vamos hacer es ver cómo se almacenan los datos en el cuaderno.

Nombre   | Cantidad  
--------------------
Manzana  | 100 
--------------------
Piña | 50 
--------------------

Cuando vemos estos datos, pensamos: ¿Qué podemos usar para almacenarlos?

Al igual que en las notas, podemos usar una estructura similar a esta tabla que, en el caso de C#, sería listas. Pero, ¿por dónde deberíamos empezar?

Comenzando la implementación

Podríamos comenzar creando una aplicación de consola y analizando lo que sabemos. En el cuaderno, tenemos las propiedades: Nombre y Cantidad. Entonces, partiremos del punto en el que debemos crear una clase que tenga ambos atributos juntos.

¿Qué nombre deberíamos darle a esta clase? Un buen nombre sería Producto, ya que dejamos claro lo que representa la clase.

public class Producto

Esta clase tendrá que tener los atributos de nombre y cantidad, con sus respectivos getters y setters.

public class Producto{
    public int Cantidad { get; set; }
      public string Nombre { get; set; } 
}

Con nuestra clase creada, comenzaremos a trabajar con las listas en nuestro archivo Program.cs.

Dado que queremos trabajar con listas, primero crearemos una lista de productos para poder almacenarla de la misma manera que en el cuaderno.

List<Producto> listaProductos = new List<Producto>

Una vez creada esta lista, necesitamos agregar elementos a ella para asegurarnos de que funcione de la mejor manera posible, pero ¿cómo podemos agregar elementos a esta lista?

Tenemos que instanciar un Producto y agregar valores a cada atributo para agregarlo a la lista.

Producto producto1 = new Producto();
producto1.Nombre = “Pina”;
producto1.Cantidad = 50;

Bien, ahora solo falta agregarlo a la lista. Para hacer esto, debemos llamar al método "add" de la lista.

listaProductos.add(producto1);

Tenemos que mostrar los valores que están en la lista, ¿cómo haremos esto?

Podemos usar un bucle foreach para recorrer la lista y mostrar los valores que contiene. Tendremos que decidir qué queremos hacer con cada producto de la lista.

foreach(Producto producto in listaProductos){
       Console.WriteLine(producto.Nombre);
 }

Modificando la lista

Además de agregar elementos, queremos modificar los elementos que están dentro de esta lista, ya que escribimos "piña" de manera incorrecta, está escrito como "pina" y no es así como se escribe. ¿Pero cómo podemos hacer esta modificación?

Cuando creamos una lista, esta tiene algo llamado índice, este índice es la numeración que está dentro de la lista, es decir, cada vez que creamos un elemento en la lista, este tendrá un índice.

Entonces, haremos esta modificación a partir del índice, donde cambiaremos "pina" por "piña". Primero, tomemos nuestra lista que contiene solo un índice y cambiemos el nombre que contiene la lista.

listaProductos[0].Nombre = "Piña";
listaProductos[0].Cantidad = 12;

Con esto, hemos cambiado el nombre en la lista, pero debemos verificar si esta modificación fue exitosa. Luego, recorreremos la lista nuevamente y mostraremos los valores que contiene.

foreach(Producto producto in listaProductos){
       Console.WriteLine(producto.Nombre);
} 

Después de esto, vamos a hacer el análisis de los elementos que están en el cuaderno, pero descubrimos que han dejado de vender piñas en esta tienda. Entonces, tenemos que quitar este elemento de nuestra lista, ¿cómo podemos hacerlo?

Eliminando un elemento de la lista

Para realizar la eliminación existen dos formas de hacerlo, podemos eliminar por índice o podemos eliminar directamente el producto. Entonces, mostraremos ambas formas.

Comenzaremos agregando un nuevo elemento a nuestra lista para poder demostrar ambas formas.

Producto producto2 = new Producto();
producto2.Nombre = “Banana”;
producto2.Cantidad = 100;
listaProductos.add(producto2);

Con un nuevo elemento agregado a nuestra lista, pensemos en la forma que ya conocemos. Bien, ya conocemos cómo funcionan los índices. Entonces, comenzaremos a eliminarlo de esta manera, pasando el índice que está en la lista como parámetro.

listaProductos.RemoveAt(0);

Aquí hemos eliminado por índice, ahora eliminaremos pasando el producto que queremos eliminar, para ello usaremos la función Remove, que espera uno de los objetos que están en la lista.

listaProductos.Remove(producto2);

Conclusión

Con esto hemos solucionado el problema que teníamos respecto a datos perdidos o datos incorrectos.

Con las listas aprendimos a almacenar, modificar y eliminar.

Si estás interesado en cómo funciona C# y cómo puedes usarlo mejor, aquí en Alura Latam tenemos una formación en C#, que presenta los fundamentos del lenguaje y de la programación orientada a objetos.

Este artículo fue traducido para Alura por Elias Ribeiro

Este artículo fue traducido para Alura Latam por Brenda Souza

Artículo Anterior
Cómo crear una calculadora de IMC con ASP.NET Core Blazor
Siguiente Artículo
Ordenar números en Java

Ver otros artículos sobre Programación

Navegación

  • Planes
  • Instructores
  • Blog
  • Política de privacidad
  • Términos de uso
  • Sobre nosotros
  • Preguntas frecuentes

¡CONTÁCTANOS!

  • ¡Quiero entrar en contacto!

Blog

  • Programación
  • Data Science
  • Front End
  • Innovación y Gestión
  • DevOps

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

NOVEDADES Y LANZAMIENTOS

Aliados

  • Programa de aceleração Scale-Up Endeavor
  • En Alura somos unas de las Scale-Ups seleccionadas por Endeavor, programa de aceleración de las empresas que más crecen en el país.
  • Growth Academy 2021 do Google For Startups
  • Fuimos unas de las 7 startups seleccionadas por Google For Startups en participar del programa Growth Academy en 2021
Alura

Powered by

Caelum

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

Cursos

Cursos de Programación
Lógica de Programación | Java
Cursos de Front End
HTML y CSS | JavaScript | React
Cursos de Data Science
Data Science | Machine Learning | Excel | Base de Datos | Data Visualization | Estadística
Cursos de DevOps
Docker | Linux
Cursos de Innovación y Gestión
Transformación Ágil | Marketing Analytics

Alura

  • Educação em Tecnologia

    • logo fiap FIAP
    • logo casa do codigo Casa do Código
    • logo pm3 PM3 - Cursos de Produto
  • Mais Alura

    • logo alura start START BY Alura
    • logo alura lingua Alura Língua
    • logo alura para empresas Alura Para Empresas
    • logo alura latam Alura LATAM
  • Comunidade

    • logo tech guide Tech Guide
    • logo 7 days of code 7 days of code
    • logo Hipsters ponto Jobs Hipsters ponto Jobs
  • Podcasts

    • logo Hipster Network Hipster Network
    • logo Hipsters ponto Tech Hipsters ponto Tech
    • logo Dev sem fronteiras Dev sem Fronteiras
    • logo Like a Boss Like a Boss
    • logo IA Sob Controle IA Sob Controle
    • logo Mesa de Produto Mesa de Produto
    • logo Decode Decode
    • logo FIAPCast FIAPCast