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

Foreach loop over collections in C Sharp (C#) - Mini Project: Build & Apply

Choose your learning style10 modes available
Foreach Loop Over Collections
📖 Scenario: You are helping a small bookstore organize its inventory. The store has a list of book titles, and you want to display each title to the customers.
🎯 Goal: Build a simple C# program that uses a foreach loop to go through a list of book titles and print each one.
📋 What You'll Learn
Create a list of book titles with exact values
Create a variable to count the number of books
Use a foreach loop to iterate over the list of book titles
Print each book title and the total count of books
💡 Why This Matters
🌍 Real World
Foreach loops are used in many programs to process lists of data, like showing items in a store or reading user inputs.
💼 Career
Understanding how to loop over collections is a basic skill for software developers, useful in data processing, UI lists, and more.
Progress0 / 4 steps
1
Create a list of book titles
Create a List<string> called books with these exact titles: "The Hobbit", "1984", "Pride and Prejudice", "To Kill a Mockingbird".
C Sharp (C#)
Hint

Use List<string> and initialize it with the four book titles inside curly braces.

2
Create a counter variable
Create an integer variable called count and set it to 0 to keep track of the number of books.
C Sharp (C#)
Hint

Declare int count = 0; inside the Main method.

3
Use a foreach loop to iterate over the list
Use a foreach loop with the variable book to go through each item in the books list. Inside the loop, print the current book and increase count by 1.
C Sharp (C#)
Hint

Use foreach (string book in books) and inside the loop write Console.WriteLine(book); and count++;.

4
Print the total number of books
After the foreach loop, print the total number of books using Console.WriteLine with the message: Total books: followed by the count variable.
C Sharp (C#)
Hint

Use Console.WriteLine($"Total books: {count}"); after the loop to show the total.

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