Como posso percorrer uma lista e pegar cada item?
Quero que a saída fique assim:
Console.WriteLine("amount is {0}, and type is {1}", myMoney.amount, myMoney.type);
Aqui está o meu 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
user1929393
fonte
fonte
foreach
não clona os objetos ..Enumerator
.. que é umstruct
.. que também está na pilha. Então, eu ainda não entendi o que você estava conseguindo com seu comentário.Enumerator
e não uma cópia do objeto. Mas o fato é que, dependendo do que você está fazendo, há mais sobrecarga com umforeach
loop vs. umfor
loop. Acabei de executar um teste rápido com seu código com 100.000 entradas no loopList
e oforeach
loop demorou o dobro do tempo (na verdade, 1,9 vezes o comprimento). Isso não é necessariamente verdade em todas as situações, mas em muitas. Depende do tamanho da lista, quantas operações você faz dentro do loop, etc ... Era isso que eu estava fazendo.Apenas para completar, há também a maneira LINQ / Lambda:
fonte
Assim como qualquer outra coleção. Com a adição do
List<T>.ForEach
método.fonte
É assim que eu escreveria usando mais
functional way
. Aqui está o código:fonte