# Exercise: Arrays and Loops

Solve 17 problems with arrays and loops (filling, searching, totaling, finding the highest and lowest, reversing) and check each with tests.

Apprentice · C# · Updated October 30, 2026

Almost everything a program does with a group of values is one of a few patterns: fill it, add it up, find something in it, find the biggest or smallest, or turn it around. In this exercise you write each of them yourself, 17 methods in all, and tests check every one.

## Get the exercise code

Open this lesson's GitHub repository, [github.com/ask-codey/exercise-arrays-and-loops](https://github.com/ask-codey/exercise-arrays-and-loops), also linked from the **Exercise** box beside the lesson. Click **Code**, then **Download ZIP**, and unzip it into your `bootcamp` folder. Or clone it with Git.

The `ArraysExercise` project has four classes of methods to write:

| File | Methods |
|---|---|
| `Calendar.cs` | `DaysOfTheWeek`, `MonthsOfTheYear`, `FirstDayOfWeek`, `LastDayOfWeek`, `MonthName` |
| `NumberLists.cs` | `OneToFifty`, `EvenNumbers`, `SumNumbers`, `DoubleEvens`, `SumEveryThird`, `SumFirstTwoNumbers` |
| `Names.cs` | `HasName`, `CountName`, `ReverseNames` |
| `Prices.cs` | `AveragePrice`, `HighestPrice`, `LowestPrice` |

`ArraysExercise.Tests` holds the tests; you don't need to change it. Open `ArraysExercise.slnx` in Visual Studio, or the folder in VS Code.

## What to do

Each method returns an empty array, `0`, `""` or `false` for now, and the comment above it says what it should return, with examples. A method that returns an array can return one written with square brackets:

```csharp
public static int[] FirstThreeOdds()
{
    return [1, 3, 5];
}
```

Replace each `return` line with your own code. Work through the files in order: the first problems are short, and they get harder.

## Check your work

In Visual Studio, choose **Test > Run All Tests**. Or, in Git Bash, from the folder with the `.slnx` file:

```bash
dotnet test
```

Each method you finish turns its tests green. A failing test's message says what it expected, such as *[1, 2, 3, 4] adds up to 10.*

## Hints

- **Index or element?** If you need the position (`OneToFifty`, `SumEveryThird`, `ReverseNames`), use `for`. If you need only each value (`SumNumbers`, `HasName`), `foreach` is simpler.
- **Off by one.** Indexes run from `0` to `Length - 1`. Month number 1 is at index 0.
- **Totals** start at `0`; add each element. **Highest** starts at the first element; replace it when you find a bigger one.
- **Searching:** return `true` as soon as you find the name. Return `false` only after the loop has looked at every name.
- **Capital letters:** `"Kent".ToLower()` is `"kent"`. Compare two names in lowercase and capitals stop mattering. You'll learn more about strings in the next chapter.
- **A new array:** `ReverseNames` must return a *new* array, `new string[names.Length]`, and leave the one it was given unchanged.

## When you're done

Every test is green. Look back at your code: did you use the loop that fits each problem best? Is any variable named `x` or `temp` that could say what it holds?

## Submit your exercise

The exercise is how you finish this lesson. When your work is done, put it on GitHub in a repo of your own, then submit that repo's address here.

1. On GitHub, click **+**, then **New repository**. Name it (for example `exercise-arrays-and-loops`), choose **Public**, and click **Create repository**. Leave out the README: your folder already has one.
2. In a terminal in your exercise folder (Git Bash on Windows), send your work to your new repo. If you downloaded the ZIP:

   ```bash
   git init -b main
   git add .
   git commit -m "My solution"
   git remote add origin https://github.com/your-name/exercise-arrays-and-loops.git
   git push -u origin main
   ```

   If you cloned the starter instead, point your copy at your own repo, then commit and push:

   ```bash
   git remote set-url origin https://github.com/your-name/exercise-arrays-and-loops.git
   git add .
   git commit -m "My solution"
   git push -u origin main
   ```

3. Paste your repo's address, such as `https://github.com/your-name/exercise-arrays-and-loops`, into **Submit your exercise** on this page. The site checks that the repo is public and holds your commits, and then the lesson is complete.

Changed something after you submitted? Push it, and submit again: your latest submission is the one that counts.

## So what

Fill, total, search, count, find the extreme, reverse: these patterns come back in every program that handles data, from shopping carts to sports scores.

## Key terms

- [Array](https://www.ask-codey.com/glossary/array-c-sharp)
- [Array Index](https://www.ask-codey.com/glossary/array-index-c-sharp)
- [for Loop](https://www.ask-codey.com/glossary/for-loop-c-sharp)
- [foreach Loop](https://www.ask-codey.com/glossary/foreach-loop)

## Related

- [Array Basics](https://www.ask-codey.com/lessons/arrays-in-csharp-array-basics)
- [For Loop](https://www.ask-codey.com/lessons/looping-in-csharp-for-loop)
- [Foreach Loop](https://www.ask-codey.com/lessons/looping-in-csharp-foreach-loop)

Source: https://www.ask-codey.com/lessons/exercise-arrays-and-loops
