Bird
Raised Fist0
C Sharp (C#)programming~5 mins

Foreach loop over collections in C Sharp (C#)

Choose your learning style10 modes available
Introduction

A foreach loop helps you go through each item in a group one by one without worrying about counting or indexes.

When you want to read or use every item in a list of names.
When you need to print all elements in an array of numbers.
When you want to check or change each item in a collection like a list or set.
When you want to add up all values in a collection without missing any.
When you want to avoid mistakes from counting indexes manually.
Syntax
C Sharp (C#)
foreach (var item in collection)
{
    // use item here
}
The item is each element you get from the collection one by one.
You cannot change the collection size inside the foreach loop.
Examples
This prints each fruit name from the array.
C Sharp (C#)
string[] fruits = {"apple", "banana", "cherry"};
foreach (var fruit in fruits)
{
    Console.WriteLine(fruit);
}
This prints each number doubled from the list.
C Sharp (C#)
List<int> numbers = new List<int> {1, 2, 3};
foreach (int number in numbers)
{
    Console.WriteLine(number * 2);
}
Sample Program

This program creates a list of colors and prints each color with a label using a foreach loop.

C Sharp (C#)
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<string> colors = new List<string> {"red", "green", "blue"};
        foreach (var color in colors)
        {
            Console.WriteLine($"Color: {color}");
        }
    }
}
OutputSuccess
Important Notes

Foreach loops are safer and easier than for loops when you just want to read items.

You cannot add or remove items from the collection while inside a foreach loop.

Foreach works with any collection that implements IEnumerable.

Summary

Foreach loops let you visit each item in a collection easily.

They avoid mistakes from counting indexes manually.

Use foreach when you want to read or process all items one by one.

Practice

(1/5)
1. What does a foreach loop do in C#?
easy
A. It visits each item in a collection one by one.
B. It creates a new collection from scratch.
C. It only runs once regardless of collection size.
D. It deletes items from a collection while looping.

Solution

  1. Step 1: Understand the purpose of foreach

    The foreach loop is designed to go through each element in a collection without manual index handling.
  2. Step 2: Compare options to foreach behavior

    Only It visits each item in a collection one by one. correctly describes visiting each item one by one. Other options describe actions foreach does not perform.
  3. Final Answer:

    It visits each item in a collection one by one. -> Option A
  4. Quick Check:

    foreach loops = visit items one by one [OK]
Hint: Foreach always processes every item in the collection [OK]
Common Mistakes:
  • Thinking foreach modifies the collection
  • Confusing foreach with creating collections
  • Assuming foreach runs only once
2. Which of the following is the correct syntax for a foreach loop over a list of strings named names?
easy
A. foreach (name string in names) { Console.WriteLine(name); }
B. foreach (string name in names) { Console.WriteLine(name); }
C. foreach string name in names { Console.WriteLine(name); }
D. foreach (string name : names) { Console.WriteLine(name); }

Solution

  1. Step 1: Recall correct foreach syntax

    The correct syntax uses parentheses with type and variable, then 'in' keyword before collection.
  2. Step 2: Check each option

    foreach (string name in names) { Console.WriteLine(name); } matches correct syntax. foreach string name in names { Console.WriteLine(name); } misses parentheses. foreach (name string in names) { Console.WriteLine(name); } swaps type and variable. foreach (string name : names) { Console.WriteLine(name); } uses ':' which is invalid in C# foreach.
  3. Final Answer:

    foreach (string name in names) { Console.WriteLine(name); } -> Option B
  4. Quick Check:

    foreach syntax = (type variable in collection) [OK]
Hint: Remember: foreach uses (type variable in collection) [OK]
Common Mistakes:
  • Omitting parentheses
  • Using ':' instead of 'in'
  • Swapping variable and type order
3. What will be the output of this code?
string[] fruits = { "apple", "banana", "cherry" };
foreach (string fruit in fruits)
{
    Console.Write(fruit + " ");
}
medium
A. apple banana cherry
B. applebanana cherry
C. apple, banana, cherry
D. apple banana cherry

Solution

  1. Step 1: Understand the loop behavior

    The foreach loop prints each fruit followed by a space, all on the same line.
  2. Step 2: Analyze output format

    Since Console.Write (not WriteLine) is used, output is continuous with spaces between fruits.
  3. Final Answer:

    apple banana cherry -> Option A
  4. Quick Check:

    foreach prints items with space = apple banana cherry [OK]
Hint: Console.Write prints inline; spaces separate items [OK]
Common Mistakes:
  • Assuming Console.WriteLine adds spaces
  • Expecting commas between items
  • Thinking output is on separate lines
4. Identify the error in this code snippet:
List<int> numbers = new List<int> {1, 2, 3};
foreach (int num in numbers)
{
    numbers.Remove(num);
}
medium
A. Variable 'num' is not declared.
B. Missing semicolon after foreach statement.
C. Cannot modify collection while iterating with foreach.
D. List initialization syntax is incorrect.

Solution

  1. Step 1: Understand foreach restrictions

    Modifying a collection (like removing items) while using foreach causes runtime errors.
  2. Step 2: Check other options

    Semicolon is not needed after foreach header. Variable 'num' is declared. List initialization is correct.
  3. Final Answer:

    Cannot modify collection while iterating with foreach. -> Option C
  4. Quick Check:

    Modifying collection in foreach = error [OK]
Hint: Don't change collection inside foreach loop [OK]
Common Mistakes:
  • Trying to remove items inside foreach
  • Confusing foreach syntax errors
  • Ignoring runtime exceptions
5. Given a dictionary Dictionary<string, int> scores, how can you use a foreach loop to print all keys with values greater than 50?
hard
A. foreach (var pair in scores) { Console.WriteLine(pair.Value > 50); }
B. foreach (string key in scores.Values) { if (key > 50) Console.WriteLine(key); }
C. foreach (int value in scores.Keys) { if (value > 50) Console.WriteLine(value); }
D. foreach (var pair in scores) { if (pair.Value > 50) Console.WriteLine(pair.Key); }

Solution

  1. Step 1: Understand dictionary iteration

    Iterating a dictionary with foreach gives key-value pairs as 'var pair'.
  2. Step 2: Filter and print keys with values > 50

    Check pair.Value > 50, then print pair.Key. foreach (var pair in scores) { if (pair.Value > 50) Console.WriteLine(pair.Key); } does this correctly.
  3. Step 3: Analyze incorrect options

    foreach (string key in scores.Values) { if (key > 50) Console.WriteLine(key); } tries to iterate values as strings (wrong). foreach (int value in scores.Keys) { if (value > 50) Console.WriteLine(value); } iterates keys as ints (wrong). foreach (var pair in scores) { Console.WriteLine(pair.Value > 50); } prints booleans, not keys.
  4. Final Answer:

    foreach (var pair in scores) { if (pair.Value > 50) Console.WriteLine(pair.Key); } -> Option D
  5. Quick Check:

    Use var pair and check Value > 50 [OK]
Hint: Use var pair to access key and value in dictionary [OK]
Common Mistakes:
  • Iterating keys as values or vice versa
  • Printing booleans instead of keys
  • Wrong variable types in foreach
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard