Recorrer un DataSet

13/08/2007 - 16:41 por Robert Dennis Acrota Umpire | Informe spam
Saludos a Todos

Quisiera saber cual es la mejor forma de recorrer un data set
He visto en algunos codigos que lo hacen a traves de for y while p.ej:
Mi dataset se llama dsTasas y es propiedad de mi clase

for (i=0; i < this.dsTasas.Tables[0].Rows.Count; i++)
{
this.dsTasas.Tables[0].Rows[i]['columnaX']) =...;
}

i = 0;
while(i < this.dsPendiente.Tables[0].Rows.Count)
{
this.dsCuotas.Tables[0].Rows[i]['columnaX'] = ...;
i++;
}

Sin embargo el acceso a las columnas que maneja el dataset es mas largo y el
codigo es menos entendible, a mi parecer

He visto recorrer a traves de un DataRow con foreach
foreach(DataRow dr in this.dsPendiente.Tables[0].Rows)
{
dr.['columnaX'] = ...;
i++;
}

Para mi recorrer con foreach es mas entendible, la pregunta es: es mas lento
recorrer con foreach?,
me han comentado que es mas lento el foreach, y por eso utilizan for o while
Ustedes como recorren los dataset?

Gracias por sus opiniones
 

Leer las respuestas

#1 Alberto Poblacion
13/08/2007 - 16:54 | Informe spam
"Robert Dennis Acrota Umpire" wrote in
message news:%
Quisiera saber cual es la mejor forma de recorrer un data set
[...]
Para mi recorrer con foreach es mas entendible, la pregunta es: es mas
lento recorrer con foreach?,
me han comentado que es mas lento el foreach, y por eso utilizan for o
while
Ustedes como recorren los dataset?



Cuando se recorren los elementos de un Array, el foreach es ligeramente
más lento que usar un índice. Pero cuando no es un array, sino un objeto que
simula la sintaxis de un array usando el indexador (cosa que ocurre al
llamar a las Rows de un datatable), entonces el que sea más rápido el
indexador o el enumerador (la implemantación de IEnumerable que usa el
foreach) dependerá de cómo estén implementados internamente el indexador y
el enumerador, sin que pueda decirse a priori sin hacer un benchmark de cada
uno cuál va a ser más rápido.
En cualquier caso, para recorrer los registros de un DataSet, la
diferencia de velocidad va a ser insignificante, con lo cual yo te
recomiendo que uses lo que te resulte más legible. Yo, personalmente, uso el
foreach.

Preguntas similares