C
C#14mo ago
Sanne

✅ Array look if in right order?

I have this array:
int[] numbers = {1, 3, 4, 2, 6};
int[] numbers = {1, 3, 4, 2, 6};
After that array, I have this:
private void label2_Click(object sender, EventArgs e)
{

int scorestreet = 0;

Array.Sort(numbers);

bool isInSequence = numbers.SequenceEqual(Enumerable.Range(1, numbers.Count()));

MessageBox.Show(isInSequence.ToString());
}
private void label2_Click(object sender, EventArgs e)
{

int scorestreet = 0;

Array.Sort(numbers);

bool isInSequence = numbers.SequenceEqual(Enumerable.Range(1, numbers.Count()));

MessageBox.Show(isInSequence.ToString());
}
Currently it looks if it's in the right order '1 2 3 4 5' (It's not at the moment, so it'll return false.) But how can I make it look if it's in the right order '1 2 3 4'? It keeps returning false because it looks at all numbers in the array, not only the first 4. I tried changing 'numbers.Count()' to 4, and I also tried 'numbers.Count() - 1' but those aren't working.
5 Replies
phaseshift
phaseshift14mo ago
numbers[0..4] or numbers.Take(4) depending on the type
Thinker
Thinker14mo ago
(btw please use .Length instead of .Count())
Sanne
Sanne14mo ago
thank you! this works! :D alright, why though? c:
Thinker
Thinker14mo ago
Count() has to loop over every element in the array to check how many there are. Length is just a constant property of an array which returns its length. So Count has to count the elements, while Length is just the length.
Sanne
Sanne14mo ago
thanks! :D