Introducción a C#

1

Programación en C#: Desarrollo de Aplicaciones y Videojuegos

2

Instalación y uso básico de Visual Studio Community para C#

3

Comparación de Visual Studio 2019 y 2022 con .NET 3.1 y 6

4

Programación en C# con Visual Studio: Primeros Pasos

5

Creación de Aplicaciones Gráficas con WPF en Visual Studio

6

Organización de Código en C Sharp: Uso de Namespaces y Clases

Lógica de programación

7

Tipos de Datos en C: Enteros, Booleanos, Flotantes y Cadenas

8

Variables y Conversión de Datos en C#

9

Cadenas de Caracteres: Uso y Manipulación Básica en Programación

10

Operadores Aritméticos y Tipos de Datos en C#

11

Operadores Lógicos: Uso y Ejemplos en Programación

12

Operadores Relacionales en Programación: Comparación de Valores

13

Lectura de datos del usuario en consola con Console.ReadLine

14

Uso de Arreglos en C para Organizar Datos de Cafetería

15

Manipulación de Listas en C: Creación, Modificación y Uso Práctico

16

Uso de Métodos en C# para Generar Números Aleatorios

17

Métodos de Strings en C#: Uso y Ejemplos Prácticos

18

Creación de Métodos en C# para Operaciones Matemáticas

Bucles y estructuras de control en C#

19

Uso de la sentencia if para decisiones en programación

20

Uso de la sentencia Switch en C#

21

Ciclo For: Uso y Ejemplos Prácticos en Programación

22

Ciclos While y Do While en C#: Uso y Ejemplos Prácticos

Proyecto

23

Sistema de Reservación para Restaurante de 10 Mesas en C#

24

Búsqueda y Registro en Arrays con C#

25

Refactorización de Código en C#: Mejora y Eficiencia

Tus siguientes pasos con C#

26

Programación Orientada a Objetos con C#

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Manipulación de Listas en C: Creación, Modificación y Uso Práctico

15/26
Recursos

¿Qué es una lista en C y cómo se diferencia de un array?

En programación, las listas son estructuras más dinámicas y flexibles que los arrays. Mientras que un array tiene una longitud fija, las listas permiten añadir, quitar y modificar elementos de forma sencilla. Considera una lista de pedidos en un restaurante como ejemplo: si un miembro de la familia cambia de opinión, puedes quitar o agregar elementos sin problemas. Además, las listas te permiten buscar elementos por índice o por su valor directamente, algo que no es posible con los arrays. A continuación, vamos a detallar cómo trabajar con listas en C.

¿Cómo se declara una lista en C?

Para definir una lista en C, utilizamos la palabra clave List, especificando el tipo de datos que almacenará. Observemos el siguiente código:

List<string> tacoShoppingList = new List<string>();

Aquí estamos declarando una lista llamada tacoShoppingList que almacenará cadenas de caracteres. El uso de <string> indica que nuestros elementos serán de tipo string.

¿Cómo se agregan elementos a una lista?

Utilizar el método .Add es la manera más sencilla de agregar elementos:

tacoShoppingList.Add("Cinco tacos de suadero");
tacoShoppingList.Add("Cuatro tacos de tripa");
tacoShoppingList.Add("Cinco tacos de pastor");
tacoShoppingList.Add("Cuatro Coca-Colas");

Este método permite incluir cualquier cadena deseada, ya sea "tacos" u otras bebidas.

¿Cómo se imprimen los elementos de una lista?

Para imprimir tus listas, utiliza un bucle for y el método Console.WriteLine. Esto te permitirá acceder y mostrar cada elemento por índice:

for (int i = 0; i < tacoShoppingList.Count; i++)
{
    Console.WriteLine(tacoShoppingList[i]);
}

El uso de tacoShoppingList.Count permite iterar a través de todos los elementos de la lista, garantizando que se impriman en el orden correcto.

¿Cómo se manipulan los elementos de una lista?

Las listas en C ofrecen varios métodos para modificar su contenido:

¿Cómo se eliminan elementos de una lista?

Para remover un elemento específico, utiliza el método .Remove:

tacoShoppingList.Remove("Cinco tacos de suadero");

Recuerda que la comparación de cadenas es sensible a mayúsculas, así que asegúrate de que el texto coincida exactamente.

Métodos adicionales

C además ofrece otros métodos útiles para trabajar con listas:

  • RemoveRange: Permite eliminar un rango específico de elementos.
  • Clear: Elimina todos los elementos de la lista.
  • Foreach: Ejecuta una acción específica por cada elemento en la lista.
  • FirstOrDefault: Retorna el primer elemento o un valor predeterminado si no hay ninguno.

Estos métodos son esenciales para gestionar listas de forma eficiente y dinámica.

Al entender cómo funcionan las listas y sus ventajas sobre los arrays, estarás mejor preparado para solucionar problemas de almacenamiento y manipulación de datos en tus proyectos de programación en C. ¡Continúa explorando y experimentando con listas para mejorar tus habilidades!

Aportes 41

Preguntas 9

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Para el que no le funciono la clase List<>, es porque falta una referencia al principio del archivo

using System.Collections.Generic;

Esta clase solo me dió hambre :c

Las listas cumplen la misma funcionalidad que un array almacenar información. Los array lo utilizaremos para almacenar información que no cambiará o será en casos particulares. En cambio una Lista se utilizará para la información que se vaya modificando constantemente (por eso utilizaremos los métodos provenientes de la clase list).

Otra forma de recorrer las listas sería utilizando el ,metodo ForEach de las listas y las expresiones lambda o funciones anonímas, siguiendo los ejemplos (soy de Venezuela y me encantan las arepas):

List<string> tacoShoppingList = new List<string>();
tacoShoppingList.Add(“4 arepas de reina pepiada”);
tacoShoppingList.Add(“5 arepas peludas”);
tacoShoppingList.Add(“4 arepas sifrinas”);
tacoShoppingList.Add(“2 arepas viudas”);

for (int i = 0; i < tacoShoppingList.Count; i++)
{
Console.WriteLine(tacoShoppingList[i]);

}

Console.WriteLine("---------------------");
tacoShoppingList.RemoveAt(3); //Sin relleno no gusta
tacoShoppingList.ForEach((x) => Console.WriteLine(x));
Console.WriteLine("---------------------");

Creo que este articulo podría ayudar a profundizar el tema.
https://bugeados.com/programacion/csharp/listas-en-csharp/

Codigo de la Clase

static void Main(string[] args)
        {
            List<string> tacoShoppingList = new List<string>();
            tacoShoppingList.Add("1 Taco de suadero");
            tacoShoppingList.Add("2 Tacos de Pastror");
            tacoShoppingList.Add("3 Tacos de campechano");
            tacoShoppingList.Add("4 Coca Colas");

            for(int i=0; i< tacoShoppingList.Count; i++)
            {
                Console.WriteLine(tacoShoppingList[i]);
            }
            Console.WriteLine("   ");

            tacoShoppingList.RemoveAt(0);
            for (int i = 0; i < tacoShoppingList.Count; i++)
            {
                Console.WriteLine(tacoShoppingList[i]);
            }
            Console.ReadLine();
        }

Si pican ctrl + D se duplica la línea en la que están

para no escribir tanto use CTRL + D en cada .Add para copiar toda la linea.

Que triste no ver uno de birria 😦

Una manera de ahorrar tiempo a la hora de mostrar la lista es creando un método.

static void Main(string[] Args)
{
   list<string> tacosShoppingList = new List<string>();
   tacosShoppingList.Add("Tacos de suadero");

  MostrarElementos(tacosShoppingList);
}





public static void MostrarElementos(List<string> lista1)
{
     for(int i = 0; i < lista1.Count; i++)
         {
             Console.WriteLine("{0}", lista1.[i]);
         }
}

Aquí hice el ejercicio un poco más interactivo, pues dejé que el usuario pueda llenar la lista y se imprima en limpio. Aún me falta trasladarlos a diferentes casos, en donde el usuario quiera seguir llenando la lista o quiera parar con el llenado.

Aqui les dejo un link donde podran ver las diferentes funciones que ofrece la clase List<>

https://csharp.net-tutorials.com/es/389/collections-colecciones/lists-listas/

Al buscar el error, se me hizo mucho más sencillo hacer referencia al elemento que quería remover:

tacoShoppingList.Remove(tacoShoppingList[0]);

Y funcionó perfectamente.

Como lo menciona un compañero ya en aportes, si te genera error la clase List<> es porque tu VS no te agrega automaticamente las referencias, pero puedes añadirla manualmente al inicio de tu código:

using System.Collections.Generic; 

Y listo! con eso debería funcionar.

Listas


Las listas en C# son una colección dinámica de elementos, similares a los arreglos, pero con algunas características adicionales. Se pueden utilizar para almacenar cualquier tipo de datos, y su tamaño puede cambiar dinámicamente en tiempo de ejecución.

Para usar una lista, se debe importar el espacio de nombre System.Collections.Generic
y se declara con la siguiente sintaxis:

List<TipoDeDato> nombreLista = new List<TipoDeDato>();
List<int> myList = new List<int>(); // Ejemplo

se pueden agregar elementos a la lista con el metodo Add()

myList.Add(1);
myList.Add(2);
myList.Add(3);

También se pueden inicializar con valores al momento de declarar

List<int> myList = new List<int>() {1, 2, 3, 4, 5};

Para acceder a un elemento específico de la lista se utiliza el índice, que comienza en 0, igual que en los arreglos. Por ejemplo:

List<int> myList = new List<int>() {1, 2, 3, 4, 5};
int thirdElement = myList[2]; // thirdElement es igual a 3

Las listas tienen muchos métodos y propiedades útiles, como Count, que devuelve la cantidad de elementos en la lista, o Sort() que ordena los elementos de la lista.

List<int> myList = new List<int>() {5, 3, 8, 1, 4};
int listCount = myList.Count; // listCount es igual a 5
myList.Sort(); //myList es ahora {1,3,4,5,8}

Además, las listas proporcionan una interfaz similar a los arreglos, lo que facilita su uso en muchas situaciones.

🎉✨"The best and funniest contribution of the day is: Chunchullo.🤣🤣

En Colombia a esa tripa le llamamos Chunchurria o Chinchulín 😃

estoy encantada con este curso me enamore de la programación !!!

<code> 
```c# string[] pieces = new string[] {"A", "B", "L", "P", "T", "V", "Z"}; string[] state = new string[] {"Unir", "Separar", "Uniones", "Salir"}; List<string> unions = new List<string>(); string piece1, piece2; Console.WriteLine("Bienvenido al programa de uniones."); Console.WriteLine($"Las piezas disponibles son: {string.Join(", ", pieces)}"); int option = 0; while (option != 4) { Console.WriteLine("Seleccione una opción:"); Console.WriteLine(" 1 -> Unir \n 2 -> Separar \n 3 -> Muestra las uniones existentes \n 4 -> Salir"); option = Convert.ToInt32(Console.ReadLine()); if (option == 1) { Console.WriteLine("Seleccione la primera pieza:"); piece1 = Console.ReadLine(); while (piece1 != "A" && piece1 != "B" && piece1 != "L" && piece1 != "P" && piece1 != "T" && piece1 != "V" && piece1 != "Z") { Console.WriteLine("Pieza no válida. Seleccione una pieza válida:"); piece1 = Console.ReadLine(); } Console.WriteLine("Seleccione la segunda pieza:"); piece2 = Console.ReadLine(); while (piece2 != "A" && piece2 != "B" && piece2 != "L" && piece2 != "P" && piece2 != "T" && piece2 != "V" && piece2 != "Z") { Console.WriteLine("Pieza no válida. Seleccione una pieza válida:"); piece2 = Console.ReadLine(); } unions.Add($"{piece1} + {piece2}"); Console.WriteLine($"Unión de {piece1} y {piece2} realizada."); option = 0; } else if (option == 2) // Deshace cualquier union de la pieza seleccionada { Console.WriteLine("Quitarás todas las uniones de la pieza que escojas:"); Console.WriteLine("Seleccione la pieza:"); piece1 = Console.ReadLine(); while (piece1 != "A" && piece1 != "B" && piece1 != "L" && piece1 != "P" && piece1 != "T" && piece1 != "V" && piece1 != "Z") { Console.WriteLine("Pieza no válida. Seleccione una pieza válida:"); piece1 = Console.ReadLine(); } unions.RemoveAll(x => x.Contains(piece1)); Console.WriteLine($"Se han eliminado todas las uniones de la pieza {piece1}."); option = 0; } else if (option == 3) { Console.WriteLine("Las uniones existentes son:"); foreach (string union in unions) { Console.WriteLine(union); } option = 0; } else if (option == 4) { Console.WriteLine("Gracias por usar el programa."); } else { Console.WriteLine("Opción no válida. Seleccione una opción válida."); } } ```

¡Larga vida al chunchullo!

Agregando los precios usando otra lista de tipo Double 😄

internal class Program
{
    private static void Main(string[] args)
    {
        List<string> tacoShopping = new List<string>();

        tacoShopping.Add("Suaperro");
        tacoShopping.Add("Tripa");
        tacoShopping.Add("Pastor");
        tacoShopping.Add("Vegetales (Vegano)");

        List<Double> preciosTacos = new List<Double>();
        preciosTacos.Add(5.50);
        preciosTacos.Add(4.50);
        preciosTacos.Add(5.00);
        preciosTacos.Add(8.50);


        for (int i = 0; i < tacoShopping.Count; i++)
        {
            Console.WriteLine("Taco de {0} : {1}", tacoShopping[i], preciosTacos[i]);
        }
    }
}

Si usas una version mas antigua que la Visual Studio Com 2022, tienes que escribir esto arriba en las librerias.


using System.Collections.Generic;

Se obtiene el valor de la posicion indicada por el indice no con parentesis, sin con corchetes

El equivalente a “tacos de Tripa, en colombia”

List<string> tacoShopingList = new List<string>();
tacoShopingList.Add("Tacos de Chunchurría");

**#nuncaparesdeaprender? ** 😅

Para los que no les funcionó el Console.WriteLine por usar using System.Collections.Generic, deben ponerlo así:

System.Console.WriteLine(tacoShoppingList[i]);

Agt el chunchullo ❤️

Para el que se pregunte la diferencia entre “Add” y “Append”, es la siguiente:

-El método “Add” añade un elemento al final de la lista original.
-El método “Append” crea una nueva lista, copiando los datos de la original y añadiendo al final el nuevo elemento, por lo que no modifica la lista original. El método no devuelve una lista directamente, por lo que es necesario convertir el resultado en una lista, utilizando el método “ToList”.

Posiblemente quede más claro con un ejemplo:

List<string> list = new List<string>();
list.Add("Pepe");
list.Add("Laura");

List<string> newList = list.Append("Julio").ToList(); 

for (int i = 0; i < list.Count; i++) {
    Console.WriteLine(list[i]);
}
Console.WriteLine("------");
for (int i = 0; i < newList.Count; i++) {
    Console.WriteLine(newList[i]);
}

Les comparto mi codigo:

using System;
namespace _15_Listas
{
    internal class Program
    {
        static void Main()
        {
            List<string> listFood = new List<string>();
            listFood.Add("Hotdog");
            listFood.Add("Hamburguesa");
            listFood.Add("Papas fritas");
            listFood.Add("Pizza");
            foreach (var item in listFood)
            {
                Console.WriteLine($"Alimento: { item }");
            }
            Console.WriteLine("\n");
            listFood.Remove("Pizza"); // Elimina un elemento de la lista por su valor almacenado
            foreach (var item in listFood)
            {
                Console.WriteLine($"Alimento: { item }");
            }
            Console.WriteLine("\n");
            listFood.RemoveAt(2); // Elimina un elemento de la lista por su indice dentro de la lista
            foreach (var item in listFood)
            {
                Console.WriteLine($"Alimento: { item }");
            }
        }
    }
}

Y el resultado en consola:


Alimento: Hamburguesa
Alimento: Papas fritas
Alimento: Pizza


Alimento: Hotdog
Alimento: Hamburguesa
Alimento: Papas fritas


Alimento: Hotdog
Alimento: Hamburguesa
using System;
using System.Collections.Generic;
namespace _12ListExampleProject
{
    internal class Program
    {
        static void Main(string[] args)
        {
            List<string> tacoShoppingList = new List<string>();
            tacoShoppingList.Add("5 Tacos de suadero");
            tacoShoppingList.Add("Cuatro tacos de tripa");
            tacoShoppingList.Add("Cinco tacos de pastor");
            tacoShoppingList.Add("Cuatro Coca Colas");
            //Count un conteo, de todos los elementos de nuestra lista tacoShoppingList
            for(int i = 0; i < tacoShoppingList.Count; i++)
            {
                Console.WriteLine(tacoShoppingList[i]);
                
            }
            Console.WriteLine("-------------------------");
            //Quita un elemento de nuestra lista, es preferible eliminar eementos por Indice y no por strings
            //tacoShoppingList.Remove("5 Tacos de suadero");
            tacoShoppingList.RemoveAt(0);
            for (int i = 0; i < tacoShoppingList.Count; i++)
            {
                Console.WriteLine(tacoShoppingList[i]);
            }
        }
    }
}

Hay el error que muestra el profe,es que un string con una t minuscula es diferente una T mayuscula.

Tambien puedes imprimirlo asi :3

using System;
using System.Collections.Generic;
namespace Strings
{
    class Program
    {
        static void Main(string[] args)
        {
            List<string> tacoShoppingList = new List<string>();
            tacoShoppingList.Add("Cinco tacos de suadero");
            tacoShoppingList.Add("Cinco tacos de pastor");
            tacoShoppingList.Add("4 sodas");
            
            foreach(string elem in tacoShoppingList)
            {
                Console.WriteLine(elem);
            }
        }
    }
}

Remove("") Remove(0) Eliminan elementos de la Lista.

Ejemplo con tacos, el besto ejemplo .👍🏽

Repasando ando

Console.WriteLine("Hello, Tacos DBZ!\n");

List<string> tacoShopingList = new List<string>();
tacoShopingList.Add("Cinco Tacos de suadero");
tacoShopingList.Add("Cuatro Tacos de tripa");
tacoShopingList.Add("Cinco Tacos de pastor");
tacoShopingList.Add("Cuatro Coca Colas");

for (int i = 0; i < tacoShopingList.Count; i++)
    Console.WriteLine(".Product: " + tacoShopingList[i]);

tacoShopingList.Add("Cinco Cervezas");
tacoShopingList.Remove("Cinco Tacos de suadero");
Console.WriteLine("\nHello, Tacos DBZ!\n");
for (int i = 0; i < tacoShopingList.Count; i++)
    Console.WriteLine("Product: " + tacoShopingList[i]);

tacoShopingList.Add("Papas Fritas");
tacoShopingList.RemoveAt(1);
Console.WriteLine("\nHello, Tacos DBZ!\n");
for (int i = 0; i < tacoShopingList.Count; i++)
    Console.WriteLine("Product: " + tacoShopingList[i]);

Interesante la diferencia de recorrer un array versus una lista en un ciclo for.

Listas son Arrays con esteroides.

faltó el taco de cochinita

Otra manera de recorrer la lista ademas del for es utilizando la sentencia foreach, la cual hará un repaso de todos los elementos donde literalmente declaras por cada elemento en la lista una función a realizar, que en esta clase es un Console.WriteLine: foreach(string listElement in tacosShoppingList) { Console.WriteLine(listElement); }

En las clases donde Ricardo está sentado con su Laptop en este fondo verde y tiene VS22 noto algunos errores de edición que no están presentes en las clases donde está sentado en una sala y usa VS19.

Buena clase!