How can I loop through a List and grab each item?

How can I loop through a List and grab each item?

I want the output to look like this:

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

Here is my 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; } } 

5 Answers

foreach:

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

MSDN Link

Alternatively, because it is a List<T>.. which implements an indexer method [], you can use a normal for loop as well.. although its less readble (IMO):

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

Just for completeness, there is also the LINQ/Lambda way:

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

Just like any other collection. With the addition of the List<T>.ForEach method.

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)); 
2

This is how I would write using more functional way. Here is the 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}"); }); 
1

The low level iterator manipulate code:

List<Money> myMoney = new List<Money> { new Money{amount = 10, type = "US"}, new Money{amount = 20, type = "US"} }; using (var enumerator = myMoney.GetEnumerator()) { while (enumerator.MoveNext()) { var element = enumerator.Current; Console.WriteLine(element.amount); } } 
2

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like