Inicio › Foros › Lenguajes de programación, desarrollo, código fuente › .Net C# VB y PowerShell › Avanzar iteración manual en foreach en C# [RESUELTO]
Etiquetado: .net, arreglado, avance, avanzar, c sharp, c#, código fuente, csharp, desarrollo, foreach, iteración, iterar, línea, manual, programa, programación, resuelto, solucionado, solved, truco, visual studio
- Este debate tiene 2 respuestas, 2 mensajes y ha sido actualizado por última vez el hace 4 meses, 2 semanas por Varios.
-
AutorEntradas
-
07/28/2023 a las 20:22 #49211VariosModerador
Hola, tengo el siguiente código en C# y quiero forzar el avance de una iteración en un foreach en C#. Cuando la condición se cumpla, quiero avanzar una línea (una iteración):
C#12345678910111213141516171819202122232425262728293031//Recorremos todas las líneas del fichero CSV para pasarlas al ListViewint numLinea = 0;foreach (string lineaActual in lineasCSV){numLinea++;//No cogemos la primera línea si contiene los títulos de las columnasif (opTitulos.Checked && numLinea == 1)//Aquí quiero avanzar una línea, una iteración;string[] columnnasLineaCSV = lineaActual.Split(Convert.ToChar(separador));if (opComillas.Checked)valorActual = columnnasLineaCSV[0].Trim(Convert.ToChar(lsComillas.Text));elsevalorActual = columnnasLineaCSV[0];ListViewItem filasListView = new ListViewItem(valorActual);for (int i = 1; i < columnnasLineaCSV.Count(); i++){//Añadimos cada fila del CSV como SubItems del ListViewItem//Si los valores de los campos van entre comillas, se las quitamos al principio y al finalif (opComillas.Checked)filasListView.SubItems.Add(columnnasLineaCSV[i].Trim(Convert.ToChar(lsComillas.Text)));elsefilasListView.SubItems.Add(columnnasLineaCSV[i]);}//Agregamos todas las filas al listview finallsCSV.Items.Add(filasListView);//Mostramos algunas estadísticaslNumLineas.Text = $"Nº líneas: {numLinea}, Nº columnas: {columnnasLineaCSV.Count()}";}En el código anterior C#, en el foreach, quiero avanzar una iteración en donde he colocado el comentario: Aquí quiero avanzar una línea, una iteración, sin que ejecute lo que hay debajo esta vez ¿esto es posible?
07/28/2023 a las 20:27 #49213alonsojpdSuperadministradorPuedes avanzar una iteración con «continue», tu código C# quedaría:
C#12345678910111213141516171819202122232425262728293031//Recorremos todas las líneas del fichero CSV para pasarlas al ListViewint numLinea = 0;foreach (string lineaActual in lineasCSV){numLinea++;//No cogemos la primera línea si contiene los títulos de las columnasif (opTitulos.Checked && numLinea == 1)continue;string[] columnnasLineaCSV = lineaActual.Split(Convert.ToChar(separador));if (opComillas.Checked)valorActual = columnnasLineaCSV[0].Trim(Convert.ToChar(lsComillas.Text));elsevalorActual = columnnasLineaCSV[0];ListViewItem filasListView = new ListViewItem(valorActual);for (int i = 1; i < columnnasLineaCSV.Count(); i++){//Añadimos cada fila del CSV como SubItems del ListViewItem//Si los valores de los campos van entre comillas, se las quitamos al principio y al finalif (opComillas.Checked)filasListView.SubItems.Add(columnnasLineaCSV[i].Trim(Convert.ToChar(lsComillas.Text)));elsefilasListView.SubItems.Add(columnnasLineaCSV[i]);}//Agregamos todas las filas al listview finallsCSV.Items.Add(filasListView);//Mostramos algunas estadísticaslNumLineas.Text = $"Nº líneas: {numLinea}, Nº columnas: {columnnasLineaCSV.Count()}";}07/28/2023 a las 20:30 #49215VariosModeradorOk, muchas gracias, me funciona perfecto con el «continue».
Gracias!! -
AutorEntradas
- Debes estar registrado para responder a este debate.