Comment puis-je parcourir une liste et saisir chaque élément?

Comment puis-je parcourir une liste et saisir chaque élément?

Je veux que la sortie ressemble à ceci:

Console.WriteLine("amount is {0}, and type is {1}", myMoney.amount, myMoney.type); 

Voici mon code:

 static void Main(ssortingng[] args) { List myMoney = new List { new Money{amount = 10, type = "US"}, new Money{amount = 20, type = "US"} }; } class Money { public int amount { get; set; } public ssortingng type { get; set; } } 

foreach :

 foreach (var money in myMoney) { Console.WriteLine("Amount is {0} and type is {1}", money.amount, money.type); } 

Lien MSDN

Sinon, parce que c’est une List .. qui implémente une méthode d’indexeur [] , vous pouvez également utiliser une boucle normale for .. bien que ce soit moins lisible (IMO):

 for (var i = 0; i < myMoney.Count; i++) { Console.WriteLine("Amount is {0} and type is {1}", myMoney[i].amount, myMoney[i].type); } 

Pour être complet, il y a aussi la méthode LINQ / Lambda:

 myMoney.ForEach((theMoney) => Console.WriteLine("amount is {0}, and type is {1}", theMoney.amount, theMoney.type)); 

Tout comme toute autre collection. Avec l’ajout de la méthode List.ForEach .

 foreach (var item in myMoney) Console.WriteLine("amount is {0}, and type is {1}", item.amount, item.type); for (int i = 0; i < myMoney.Count; i++) Console.WriteLine("amount is {0}, and type is {1}", myMoney[i].amount, myMoney[i].type); myMoney.ForEach(item => Console.WriteLine("amount is {0}, and type is {1}", item.amount, item.type)); 

C’est ainsi que j’écrirais de manière plus functional way . Voici le code:

 new List() { new Money() { Amount = 10, Type = "US"}, new Money() { Amount = 20, Type = "US"} } .ForEach(money => { Console.WriteLine($"amount is {money.Amount}, and type is {money.Type}"); });