¿Cómo puedo recorrer una lista y tomar cada elemento?
Quiero que la salida se vea así:
Console.WriteLine("amount is {0}, and type is {1}", myMoney.amount, myMoney.type);
Aquí está mi código:
static void Main(string[] args)
{
List<Money> myMoney = new List<Money>
{
new Money{amount = 10, type = "US"},
new Money{amount = 20, type = "US"}
};
}
class Money
{
public int amount { get; set; }
public string type { get; set; }
}
c#
for-loop
collections
usuario1929393
fuente
fuente
foreach
no clona los objetos ..Enumerator
... que es unstruct
... que también está en la pila. Así que todavía no entiendo a qué te referías con tu comentario.Enumerator
y no una copia del objeto. Pero el hecho es que, dependiendo de lo que esté haciendo, hay más sobrecarga con unforeach
bucle frente a unfor
bucle. Acabo de ejecutar una prueba rápida con su código con 100,000 entradas enList
y elforeach
ciclo tomó el doble de tiempo (en realidad 1,9 veces más). Esto no es necesariamente cierto en todas las situaciones, pero en muchas. Depende del tamaño de la Lista, cuántas operaciones realiza dentro del bucle, etc. Esto era a lo que me refería.Solo para completar, también existe la forma LINQ / Lambda:
fuente
Como cualquier otra colección. Con la adición del
List<T>.ForEach
método.fuente
Así es como escribiría usando más
functional way
. Aquí está el código:fuente