Let's say that an array is sequential when each successful element has the value of previous element + 1
. Suppose I have an array of numbers like {5,6,7,8}
(sequential) or {1,2,5}
(not sequential).
Is there a nice functional way to check if the array is sequential? I can do it with the following code:
bool IsSequential(int[] array)
{
for (int i = 1; i < array.Length; i++)
if (array[i] != array[i - 1] + 1)
return false;
return true;
}
I'm trying to determine if a poker hand is straight.
Try this one:
bool IsSequential(int[] array)
{
return array.Zip(array.Skip(1), (a, b) => (a + 1) == b).All(x => x);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With