Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

C# Intermediate C# Polymorphism Virtual Methods

Noah Verkaik
Noah Verkaik
10,952 Points

Override the Scan method to return true if any value in the array is a repeat of the value immediately preceding it.

This should do it, right??

SequenceDetector.cs
namespace Treehouse.CodeChallenges
{
    class SequenceDetector
    {
        public virtual bool Scan(int[] sequence)
        {
            return true;
        }
    }
}
RepeatDetector.cs
namespace Treehouse.CodeChallenges
{
    class RepeatDetector : SequenceDetector
    {
        public override bool Scan(int[] sequence)
        {
            for(int i = 0; i < sequence.Length; i++){
                if(sequence[i] == sequence[i+1])
                {
                return true;
                } else {return false;}
            }
                            return true;
        }
    }
}

2 Answers

Robin Card
Robin Card
9,977 Points

Hi,

There's two problems. Firstly, when you check the item that is last in the array, it will try and check if that matches the next item which doesn't exist.

Secondly, your if/then/else statement is returning true or false when it checks the very first item in the array. You want it to default to false, but return true the moment a match is found. So you don't need the else at all.

Steven Parker
Steven Parker
229,732 Points

I can see two issues:

  • you won't want to return false until after the loop (otherwise you only check one pair)
  • you will need to restrict the loop so that you don't attempt to access an item beyond the length