web-dev-qa-db-fra.com

Comment puis-je parcourir une liste <T> et récupérer chaque élément?

Comment puis-je parcourir une liste et attraper 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(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; }
}
149
user1929393

foreach:

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

lien MSDN

Sinon, comme il s’agit d’un List<T> .. qui implémente une méthode d’indexation [], vous pouvez également utiliser une boucle normale for .. bien qu’elle 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);
}
243
Simon Whitehead

Juste 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));
31
acarlon

Juste comme n'importe quelle autre collection. Avec l'ajout de la méthode List<T>.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));
16
Khan

Voici comment j'écrirais avec plus de functional way. Voici le code:

new List<Money>()
{
     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}");
});
11
Coder Absolute

Essaye ça

List<int> mylist = new List<int>();   
mylist.Add(10);  
mylist.Add(100);   
mylist.Add(-1);

// On peut faire une boucle sur les éléments de la liste avec foreach.

foreach (int value in mylist )       
{       
 Console.WriteLine(value);       
}

Console.WriteLine("::DONE WITH PART 1::");

// Ceci provoquera une exception enter code here.

foreach (int value in mylist )     
{         
 list.Add(0);      
}
0
ammad khan