¿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

foreachno 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.Enumeratory no una copia del objeto. Pero el hecho es que, dependiendo de lo que esté haciendo, hay más sobrecarga con unforeachbucle frente a unforbucle. Acabo de ejecutar una prueba rápida con su código con 100,000 entradas enListy elforeachciclo 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>.ForEachmétodo.fuente
Así es como escribiría usando más
functional way. Aquí está el código:fuente