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

Array iteration with for and foreach in C Sharp (C#) - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Array Iteration Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of for loop iterating over an array
What is the output of the following C# code?
C Sharp (C#)
int[] numbers = {1, 2, 3};
for (int i = 0; i < numbers.Length; i++)
{
    Console.Write(numbers[i] + " ");
}
A0 1 2
B1 2 3
C123
D1 2 3 4
Attempts:
2 left
💡 Hint
Remember that Console.Write prints without a newline and the loop prints each element followed by a space.
❓ Predict Output
intermediate
2:00remaining
Output of foreach loop with array
What will this C# code print?
C Sharp (C#)
string[] fruits = {"apple", "banana", "cherry"};
foreach (string fruit in fruits)
{
    Console.Write(fruit[0]);
}
Aabc
Bapplebanana cherry
Ca b c
Dapple
Attempts:
2 left
💡 Hint
Each fruit's first character is printed without spaces.
❓ Predict Output
advanced
2:00remaining
Value of sum after mixed iteration
What is the value of sum after running this code?
C Sharp (C#)
int[] values = {2, 4, 6};
int sum = 0;
for (int i = 0; i < values.Length; i++)
{
    sum += values[i];
}
foreach (int v in values)
{
    sum += v;
}
A6
B12
C18
D24
Attempts:
2 left
💡 Hint
The for loop adds all elements once, then the foreach adds them again.
❓ Predict Output
advanced
2:00remaining
Output of modifying array inside foreach
What happens when this code runs?
C Sharp (C#)
int[] nums = {1, 2, 3};
foreach (int n in nums)
{
    n = n * 2;
    Console.Write(n + " ");
}
Console.WriteLine();
foreach (int n in nums)
{
    Console.Write(n + " ");
}
A
2 4 6 
1 2 3 
B
2 4 6 
2 4 6 
C
1 2 3 
1 2 3 
DCompilation error
Attempts:
2 left
💡 Hint
Foreach variable is read-only copy, modifying it does not change the array.
🧠 Conceptual
expert
3:00remaining
Why does modifying array elements inside foreach cause error?
Consider this code snippet: int[] arr = {1, 2, 3}; foreach (int x in arr) { x = x + 1; } Why does this code not modify the array elements?
ABecause the compiler automatically resets the array after the loop finishes.
BBecause arrays in C# are immutable and cannot be changed after creation.
CBecause the foreach variable 'x' is a copy of each element, not a reference, so changes don't affect the array.
DBecause the foreach loop does not allow any statements inside its block.
Attempts:
2 left
💡 Hint
Think about how foreach handles the loop variable.

Practice

(1/5)
1. Which loop is best when you want to access each element in an array without needing the index in C#?
easy
A. foreach loop
B. for loop
C. while loop
D. do-while loop

Solution

  1. Step 1: Understand loop purpose

    foreach is designed to iterate over each element directly without needing the index.
  2. Step 2: Compare with other loops

    for requires index management, while and do-while are less direct for arrays.
  3. Final Answer:

    foreach loop -> Option A
  4. Quick Check:

    Direct element access = foreach [OK]
Hint: Use foreach when index is not needed for array items [OK]
Common Mistakes:
  • Choosing for loop when index is not required
  • Confusing while loops with foreach
  • Thinking foreach can modify array size
2. Which of the following is the correct syntax for iterating over an array named numbers using a for loop in C#?
easy
A. for (int i = 0; i < numbers.Count; i++) { Console.WriteLine(numbers[i]); }
B. for (int i = 0; i < numbers.Length; i++) { Console.WriteLine(numbers[i]); }
C. for (int i = 0; i <= numbers.Length; i++) { Console.WriteLine(numbers[i]); }
D. for (int i = 1; i <= numbers.Length; i++) { Console.WriteLine(numbers[i]); }

Solution

  1. Step 1: Check loop start and end conditions

    Index starts at 0 and runs while less than numbers.Length (array length).
  2. Step 2: Validate index usage

    Accessing numbers[i] is correct; using Count is invalid for arrays.
  3. Final Answer:

    for (int i = 0; i < numbers.Length; i++) { Console.WriteLine(numbers[i]); } -> Option B
  4. Quick Check:

    Index 0 to Length-1 = correct for loop [OK]
Hint: Use i < array.Length, not <= or Count for arrays [OK]
Common Mistakes:
  • Using i <= numbers.Length causing out-of-range error
  • Starting index at 1 instead of 0
  • Using Count property on arrays
3. What will be the output of the following C# code?
int[] nums = {1, 2, 3};
int sum = 0;
foreach (int n in nums) {
  sum += n;
}
Console.WriteLine(sum);
medium
A. Error
B. 123
C. 0
D. 6

Solution

  1. Step 1: Understand foreach iteration

    The loop adds each element (1, 2, 3) to sum one by one.
  2. Step 2: Calculate sum

    sum = 0 + 1 + 2 + 3 = 6
  3. Final Answer:

    6 -> Option D
  4. Quick Check:

    Sum of array elements = 6 [OK]
Hint: Sum elements by adding each in foreach loop [OK]
Common Mistakes:
  • Concatenating numbers instead of adding
  • Forgetting to initialize sum to 0
  • Using for loop incorrectly causing index errors
4. Identify the error in this C# code snippet:
int[] arr = {10, 20, 30};
for (int i = 0; i <= arr.Length; i++) {
  Console.WriteLine(arr[i]);
}
medium
A. The loop condition should be i < arr.Length, not i <= arr.Length
B. The array declaration is incorrect
C. Console.WriteLine cannot print array elements
D. The loop variable i should start at 1

Solution

  1. Step 1: Check loop boundary

    Using i <= arr.Length causes index out of range because last valid index is Length - 1.
  2. Step 2: Correct loop condition

    Change condition to i < arr.Length to avoid runtime error.
  3. Final Answer:

    The loop condition should be i < arr.Length, not i <= arr.Length -> Option A
  4. Quick Check:

    Index must be less than Length [OK]
Hint: Use i < array.Length to avoid out-of-range errors [OK]
Common Mistakes:
  • Using <= instead of < in loop condition
  • Starting index at 1 instead of 0
  • Misunderstanding array length vs last index
5. You have an array string[] fruits = {"apple", "banana", "cherry"};. You want to create a new array with all fruit names in uppercase using a for loop. Which code correctly does this?
hard
A. string[] upperFruits = new string[fruits.Length]; for (int i = 1; i <= fruits.Length; i++) { upperFruits[i] = fruits[i].ToUpper(); }
B. string[] upperFruits = new string[fruits.Length]; foreach (string f in fruits) { upperFruits[i] = f.ToUpper(); }
C. string[] upperFruits = new string[fruits.Length]; for (int i = 0; i < fruits.Length; i++) { upperFruits[i] = fruits[i].ToUpper(); }
D. string[] upperFruits = new string[fruits.Length]; for (int i = 0; i < fruits.Length; i++) { upperFruits[i] = fruits.ToUpper(); }

Solution

  1. Step 1: Initialize new array with same length

    We create upperFruits with the same size as fruits.
  2. Step 2: Use for loop with correct index and method

    Loop from 0 to Length-1, assign fruits[i].ToUpper() to upperFruits[i].
  3. Final Answer:

    string[] upperFruits = new string[fruits.Length]; for (int i = 0; i < fruits.Length; i++) { upperFruits[i] = fruits[i].ToUpper(); } -> Option C
  4. Quick Check:

    Use for loop with index and ToUpper() per element [OK]
Hint: Use for loop with index to assign transformed elements [OK]
Common Mistakes:
  • Using foreach without index to assign array elements
  • Starting loop at 1 or using <= causing errors
  • Calling ToUpper() on array instead of string element
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