yo estaba trabajando con algo de código C# hoy por la mañana y que tenía algo así como:¿Se llama a un método que devuelve una colección en cada iteración en una instrucción foreach en C#?
foreach(DataRow row in MyMethod.GetDataTable().Rows) {
//do something
}
Así que, como no tienen una comprensión completa del marco idioma Me gustaría saber si GetDataTable() se llama cada vez que se realiza una iteración o si simplemente se llama una vez y los datos resultantes (que serían Filas) se guardan en la memoria para recorrerlos. En cualquier caso, declaré una nueva colección para guardarlo y trabajar desde allí ...
he añadido una nueva variable así que en vez que hice:
DataRowCollection rowCollection = MyMethod.GetDataTable().Rows;
foreach(DataRow row in rowCollection) {
//do something
}
pero no estoy muy seguro de si esto es necesario.
Gracias de antemano.
Estoy de acuerdo con las respuestas aquí. Solo se llama una vez. Si tiene dudas en otras situaciones, intente poner un punto de quiebre en GetDataTable() y vea cuántas veces se golpea. –