No tienes acceso a esta clase

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

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

17 Días
6 Hrs
37 Min
57 Seg

Implementando colecciones

22/32
Recursos

Vamos a cambiar nuestra implementación del array de cursos por un List de tipo Curso.

Para añadir un nuevo objeto a la colección usaremos el método Add, si queremos añadir un conjunto de objetos en forma de colección podemos hacerlo mediante el método AddRange y para remover todos los miembros de la colección usamos el método Clear.

Aportes 43

Preguntas 10

Ordenar por:

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

Formas de eliminar elementos de una colección

  • Clear(). Elimina todos los elementos
  • Remove(objeto). Elimina el objeto que se le pasa al método
  • RemoveAll(Predicado). Elimina todos los objetos para los que el predicado devuelva true. El predicado es un método que recibe un elemento de la lista (instancia de un objeto), lo procesa, y regresa un valor booleano.
  • RemoveAt(índice). Elimina el elemento con el índice llamado.
  • RemoveRange(índice, cantidad). Elimina la cantidad especificada de elementos a partir del índice indicado.

**Recuerda que los índices inicial en 0!

Hacer Debug en vscode, una gran herramienta.

RemoveALL ? Es lo mismo que una arroy function en javascript? al utilizar un filter ? Es llamado expresión lambda el arrow Function en C# ?

miEscuela.Cursos.RemoveAll(curso => curso.Jornada == TiposJornada.manana);

Estas explicaciones debian ser en Windows Form

Queue (Cola): Trabaja bajo el pensamiento FIFO (First In First Out) primero en entrar primero en salir, como funcionaría una cola en un banco o similar, quien llega primero se atiende primero.

https://es.wikipedia.org/wiki/First_in,_first_out

Stack (Pila): Trabaja sobre el pensamiento LIFO (Last in, First Out) el primero en entrar es el último en salir

https://es.wikipedia.org/wiki/Pila_(informática)

El pocillo esta ahora caliente. Salu2 😃

me encanto programar con c# lo elegi como mi primer lenguaje de programacion y no me arrepiento gran curso ademas

Me sorprendió gratamente la eficiencia de la lista.
Hice un experimento de cuanto tardaba en imprimir un array de 20 números contra una lista de 20 números.
.
Primero, para el arreglo en 3 intentos los tiempos fueron 11.21ms, 17.82ms y 16.05ms
.

Stopwatch tiempoArray = new();
tiempoArray.Start();
var arrayLista = new int[20]{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
foreach (var item in arrayLista)
{
    Console.WriteLine($"{item}");
}
tiempoArray.Stop();
Console.WriteLine($"Tiempo total {tiempoArray.Elapsed.TotalMilliseconds}");

.
Luego para la lista, los tiempos fueron 5.67ms, 5.86ms y 5.55ms
.

Stopwatch tiempoColeccion = new();
tiempoColeccion.Start();
var coleccionLista = new List<int>{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
foreach (var item in coleccionLista)
{
    Console.WriteLine($"{item}");
}
tiempoColeccion.Stop();
Console.WriteLine($"Tiempo total {tiempoColeccion.Elapsed.TotalMilliseconds}");

La lista fue notablemente más eficiente

Lista vista en el curso

<List<int> numeros = new List<int>();>

Como agregar datos

<numeros.Add(1);>

Eliminar datos en List

<numeros.RemoveAt(0);>

Alguien podria ayudarme por favor?
No entiendo que sucede con las Jornadas

mnemotecnia para pilas y colas:

  • Queue(Cola): Primero en llegar → primero en irse
    • Imagínense la cola de un mercado o del banco; el primero que llega es el primero que atienden.
  • Stack(Pila): Primero en llegar → último en irse
    • Imagínense una pila de platos; el primero que ponen es que está hasta abajo de todo, por lo tanto, ese será el último en irse.

por que esta seccion en una linea falta () pero si se añade funciona sin problema
En el 00:20 el profe no tiene () en la tercera linea pero si yo lo pongo no pasa nada

escuela.Cursos = new Curso[]
            {
                new Curso() {Nombre = "101"},
                new Curso() {Nombre = "201"},
                new Curso() {Nombre = "301"}
            };```

Con todo el respeto Luis, se que acá hay algunas personas que ya desarrollan apps, como Yo seguro hay otros que no.
Creo que deberías ordenadamente ir mostrando los cambios en el tipo de la propiedad Curso en la cual se define una nueva para la jornada de acuerdo al enum TiposJornada, y cambia la definición de la propiedad Cursos en la clase escuela, que deja de definirse como array y ahora se declara como List

Juan Pablo is very good!

Excelente, buena clase

👽

En esta parte del código, en escuela.Cursos aparecía un error en vscode CS1061. Si les llega a suceder solo recompilen o reinicien vscode.

if (escuela?.Cursos != null)
	{
		foreach (var curso in escuela.Cursos)
			{
				WriteLine($"Nombre: {curso.Nombre} , ID: {curso.UniqueID}");
			}
	}

System.Collections.Generic… tu nuevo mejor amigo jajaja excelente

Me parecen mucho más sencillas de implementar que en Java 😃

Excelente explicacion

Para el uso de de colecciones es imprecindible que importemos la libreria de System.Collections con esto el compilador no nos va arrojar ningún error.

escuela.Cursos.AddRange(otrColeccion);
ImpimirCursosEscuela(escuela);

        escuela.Cursos.RemoveAll(delegate (Curso cur)
                                {
                                    return cur.Nombre == "301";
                                });

        escuela.Cursos.RemoveAll((cur)=> cur.Nombre == "501" && cur.Jornada == TiposJornada.Mañana );

Excelente!

Para añadir un nuevo objeto a la colección usaremos el método Add, si queremos añadir un conjunto de objetos en forma de colección podemos hacerlo mediante el método AddRange y para remover todos los miembros de la colección usamos el método Clear.

Buenas clases

Me perdi y tuve que repasar xd

No me funciono de Debugger con Visual Code si alguno me puede ayudar le agradezco gracias envio el error

En mi caso estoy teniendo un error con el metodo add

escuela.Curso.Add(new Curso(){Nombre=“401”});


Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.

Me podrían indicar a que se debe este error?.

Gracias.

Saludos
No puedo hacer el debug
Adjunto la fotografia

La sintaxis <string> se conoce como sintaxis diamante, en Java.

Buena clase

Excelente explicaciones sobre las colecciones y como usarlas muy bien

la colección nos permite agregar nuevos miembros.

Usar colecciones y no arrays

muy interesante

IEnumerable es una interface implementada por las colecciones de .NET

En los comentarios de la Interface IEnumerable encontramos la siguiente descripcion

Devolve un enumerador que itera a través de una colección.

nice class

Excelente clase.

Muy interesante clase.

Alguien me puede ayudar!! Me sale este error

Sobre el debug, tube que poner la ruta del proyecto manualmente
me saltaba una opcion donde me abria un archivo llamado launch.json
Y en ese archivo en en el apartado “program” tube que buscar mi propio archivo
"${workspaceFolder}/bin/Debug/netcoreapp3.1/etapa1.dll",

Con esto van a poder saber cuales son los HashCode de sus cursos 😃

 WriteLine($"Nombre: {arr.Nombre} //  Id: {arr.UniqueId} // HashCode: {arr.GetHashCode()}");```

De todos los cursos que he visto, creo que es el primero en el que muestra como usar el Debugger. Cada vez me gusta mas este curso