假设当每个成功元素具有前一个元素的值时,数组是顺序的+ 1.假设我有一个数字数组,如{5,6,7,8}(顺序)或{1,2,5}(非顺序).
有没有一个很好的功能方法来检查数组是否是顺序的?我可以用以下代码完成:
bool IsSequential(int[] array)
{
for (int i = 1; i < array.Length; i++)
if (array[i] != array[i - 1] + 1)
return false;
return true;
}
Run Code Online (Sandbox Code Playgroud)
我正试图确定扑克牌是否笔直.
Kam*_*ski 15
试试这个:
bool IsSequential(int[] array)
{
return array.Zip(array.Skip(1), (a, b) => (a + 1) == b).All(x => x);
}
Run Code Online (Sandbox Code Playgroud)
我不知道这是否真的是改进/更好,但您可以使用 Range。
ENumerable.Range(0, myArray.Length).Any(i => myArray[i] != myArray[0] + i)
Run Code Online (Sandbox Code Playgroud)
如果数组不包含序列号,则返回 true。
| 归档时间: |
|
| 查看次数: |
8905 次 |
| 最近记录: |