Daniel Alejandro Romero Chavez
Un resumen sobre Operadores de asignasion , acumuladores y contadores
. Un arreglo alinea en memoria elementos del mismo tipo y permite tratarlos como una sola entidad. Recuerda: la numeración inicia en 0.
// Crear y poblar el arreglo de cursos Curso[] arregloCursos = new Curso[3]; arregloCursos[0] = curso1; // primera posición (índice 0) arregloCursos[1] = curso2; // segunda posición (índice 1) arregloCursos[2] = new Curso { Nombre = "Curso 301" }; // tercera posición (índice 2)
dotnet run
¿Cómo recorrer un arreglo con while sin errores?
Imprimir posiciones fijas (0, 1, 2…) funciona, pero es frágil: si pides una posición que no existe, el programa se rompe. La solución es controlar el recorrido con un contador y la propiedad Length del arreglo.
static void ImprimirCursos(Curso[] cursos) { int contador = 0; while (contador < cursos.Length) { Console.WriteLine($"Nombre [{cursos[contador].Nombre}], ID [{cursos[contador].UniqueId}]"); contador++; } } // Pausa opcional antes de continuar Console.WriteLine("Presione enter para continuar."); Console.ReadLine(); // Cuidado: esto rompe si la posición no existe // Console.WriteLine(arregloCursos[5].Nombre);
¿Qué atajos y mejoras de sintaxis aceleran tu código?
Pequeños cambios hacen el código más claro y corto, sin perder legibilidad.
contador = contador + 1; // forma completa contador += 1; // abreviada contador++; // la más concisa cuando incrementas de a 1
contador += 2; // imprime cada dos posiciones
¿Qué habilidades y keywords refuerzas aquí?
¿Tienes otra forma favorita de recorrer arreglos o formatear la salida? Comparte tu enfoque y qué te gustaría automatizar a continuación.
Daniel Alejandro Romero Chavez
Un resumen sobre Operadores de asignasion , acumuladores y contadores
; cursos.Add(new Curso(){Nombre = "101"}); cursos.Add(new Curso(){Nombre = "201"}); cursos.Add(new Curso(){Nombre = "301"}); ImprimirCursos(cursos); private static void ImprimirCursos(List<Curso> cursos) { if(cursos != null && cursos.Count > 0) { foreach (var curso in cursos) { Console.WriteLine($"Nombre: {curso.Nombre}, Id: {curso.Id}"); } } }
Se podría realizar el recorrido de la siguiente manera también
listaCursos.ForEach(delegate(Curso curso){ Console.WriteLine(curso.Nombre); });
Andres Naranjo
Por si alguien quiere tener alguna idea de como crearlos de manera dinamica, les comparto!
Jimmy Buriticá Londoño
La próxima vez por favor comparte el código en texto, es más fácil de leer, además si nos interesa lo podemos copiar y ejecutar en nuestro ambiente local.
Gual Valencia
Excelente curso sigo el curso en MAC
private static void ImprimirCursos(Curso[] arregloCursos) { for (int i = 0; i < 3; i++) { System.Console.WriteLine($"{arregloCursos[i].Nombre}, {arregloCursos[i].UniqueId}"); } }
Brandon Díaz
Un consejo que no está tan relacionado a la clase, sino a VS Code, es que podemos hacer que las líneas de codigo se corten y se pasen hacia abajo según el ancho de la ventana/pestaña. Esto para no tener un scroll horizontal.
Alt + Z
Danilo Toro
Una alternativa usando el ciclo foreach
private static void PrintCourse(Course[] courseArray) { foreach (Course course in courseArray) { Console.WriteLine($"Course: {course.Name}, id: {course.UniqueId}"); } }```
Cristhian Camilo Perez Veloza
William Armando Forero Bermeo
Hola Camilo!
Para que te funcione el for y e muestres información distinta deberias cambiar dentro de tú código arreglosCurso[0] por arreglosCurso[i] ya que la i te funciona como un indice y cada vez que el for realice una iteración cambiará la psocición de memoria y esto ayudará a que la información de los otros cursos sea mostrada.
Andrés Felipe Largo Rodríguez
Usa la variable de iteración para acceder a cada elemento.
José Roberto Arroyo García
Company_adminOtra de las formas de imprimir un array es esta:
foreach(Curso c in arrCursos) Console.WriteLine($" Curso: {c.Nombre} - {c.UniqueId}");```
William Armando Forero Bermeo
Si alguién le interesa otra forma que se podría mostrar la información de los cursos es sobre el método sobre escrito de ToString() en el cual yo lo deje asi:
public override string ToString() {
return $“Nombre: {} ,Jornada: {this.Scheldure}”;
}
Y cuándo estemos recorriendo el array sólo sería necesario ccolocar el indice del curso:
private static void PrintCourseInfo(Course[] courses)
{
int cont = 0;
while (cont < courses.Length)
{
System.Console.WriteLine(courses[cont]);
cont ++;
}
}
De esta manera imprimirá la información con el formato que está en el metodo sobre escrito.
Leonardo Loayza
Hola, que podria usar en vez de "var"?
var arregloCursos = new Course[3];
JUAN DAVID MARTINEZ GONZALEZ
Alvaro Cedeño
Yo recorri y imprimi el arreglo con un ciclo for básico
for (int x = 0; x < 3; x++) { Console.WriteLine(arregloCursos[x].Nombre + "," + arregloCursos[x].UniqueId); System.Console.WriteLine("==============="); }
Abigail Reyes Ruh
a mi tampoco me funcionan el ctrl + . para poder hacer la funcion, no se que plugin hace falta para esto, ya tengo el C# extensions y nada
Angela Patricia Uribe Laiseca
Debes pararte sobre ImprimirCursos y ahí si usar ctrl+. si te ubicas al final de la instrucción, no te salen opciones.
Angela Patricia Uribe Laiseca
Debes pararte sobre ImprimirCursos y ahí si usar ctrl+. si te ubicas al final de la instrucción, no te salen opciones.
Andrés Felipe Largo Rodríguez
VS Code y el compilador no admitieron este método:
var courses[] = new Curso[3];
pero si este
Curso[] courses = NewMethod();
Walter Lensinas
var courses[] = new Curso[3];
Esta mal declarado esto, le tenes que sacar los corchetes a courses
Miguel Alexander Vásquez Ortega
cambia el nombre de tus variables, es confuso, pense en ayudar pero no me complicare con esos nombres
Josue Zafra
alternativamente, se puede usar un for:
for (int i = 0; i < arrayCourse.Length; i++) { Console.WriteLine($"Name: {arrayCourse[i].name}, \nId: {arrayCourse[i].UniqueId}"); }
Edil Guardado
Yo lo hice usando foreach
private static void ImprimirCursos(Curso[] arregloCursos) { System.Console.WriteLine("Cursos de la escuela"); foreach (var curso in arregloCursos) { System.Console.WriteLine($"Nombre: {curso.Nombre}, ID: {curso.UniqueID}, Jornada: {curso.Jornada}"); } }
Cesar Augusto Calabrano Hernández
Tengo una duda o inquietud, he estado trabajando con Java, pero no se si es el profesor o es el lenguaje pero me he sentido mas comodo con c#. Soy el unico?
ignacio romero
Alguno sabe donde conseguir ejercicios para practircar C#?
Yeison Montoya
hola alguno sabe como puedo correguir el codio CS8618
Otra forma de recorrer un arreglo es con un ciclo foreach.
private static void ImprimirCursos(Curso[] arregloCursos) { foreach (var item in arregloCursos) { Console.WriteLine($"Nombre: {item.Nombre}, Id: {item.UniqueId}"); } }
Yo lo hice con un ciclo for
var arregloCursos = new Curso[3]; arregloCursos[0] = new Curso(){Nombre="101"}; arregloCursos[1] = new Curso(){Nombre="201"}; arregloCursos[2] = new Curso(){Nombre="301"}; for(int i=0; i<arregloCursos.Length;i++){ Console.WriteLine($"curso: {arregloCursos[0].Nombre}\nId: {arregloCursos[0].UniqueId}"); System.Console.WriteLine("========================="); }
Aporte de la clase
using System.Runtime.Serialization.Json; // See https://aka.ms/new-console-template for more information using CoreEscuela.Entidades; Console.WriteLine("Hello, World!"); Escuela es = new Escuela("Escuela Basicas",1995,TiposEscuela.Primaria); Curso cursos1 = new Curso(); cursos1.Nombre="Pruebas"; cursos1.Jornada =TiposJornada.Manaña; var curso2 = new Curso() { Nombre = "102", Jornada = TiposJornada.Tarde }; var arrayCursos = new Curso[3]; arrayCursos[0] = new Curso(){ Nombre = "301", Jornada = TiposJornada.Noche } ; var cursos2 = new Curso(){ Nombre="302", Jornada = TiposJornada.Noche }; arrayCursos[1] = cursos2; arrayCursos[2] = new Curso(){ Nombre = "303", Jornada = TiposJornada.Noche }; Console.WriteLine(es.Nombres); Console.WriteLine("======================================="); Console.WriteLine(cursos1.Nombre + "," + cursos1.Jornada + "," + cursos1.CursoId); Console.WriteLine($"{curso2.Nombre} , {curso2.Jornada} , {curso2.CursoId}"); ImprimirCurosNoche(arrayCursos); void ImprimirCurosNoche(Curso[] arrayCursos) { foreach(var curso in arrayCursos){ Console.WriteLine($"Nombre: {curso.Nombre} , Jornada: {curso.Jornada}, Id: {curso.CursoId}"); } }
output
Pruebas,Manaña,822e56fd-7c1e-45f6-a37a-4b067228164f 102 , Tarde , faf3d262-8aa0-42f4-9ce9-2961b1dcd96d Nombre: 301 , Jornada: Noche, Id: d688bd51-b520-4e7a-8668-ac1f337e5ccf Nombre: 302 , Jornada: Noche, Id: a28efa44-6a98-4ce5-90f6-c568e854dedc Nombre: 303 , Jornada: Noche, Id: 8c5d2f53-d9e3-4d9c-9363-5ddd03105272