如何检查数组中的所有元素是否为正整数?

pri*_*kar 7 c# linq

我说有一个阵列

int[] array = new int[] { 1, 5, 11, 5 };
Run Code Online (Sandbox Code Playgroud)

如何检查(以最简单有效的方式)所有元素都是正面的?如果至少一个数字不是正整数,则系统将以否定方式响应.

期望的输出:

如果所有数字都是正数,那么它将显示"All Positive"否则"Wrong"

我的镜头

int[] array = new int[] { 1, 5, 11, 5 };
var x = array.All(c => c >= '0' && c <= '9');
if (x == true) "Positive" else "Wrong";
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 14

你以前几乎就在那里 - 但你是在与人物而不是整数进行比较.

如果您想检查一切是否严格为正,请使用:

bool allPositive = array.All(x => x > 0);
Run Code Online (Sandbox Code Playgroud)

如果你真的想检查它们都是非负的(即0可以接受),请使用:

bool allNonNegative = array.All(x => x >= 0);
Run Code Online (Sandbox Code Playgroud)

你应该考虑你想用0做什么,因为你的问题陈述实际上是矛盾的.("所有积极的"和"没有消极的"不是一回事.)

需要注意的是,就像Any,All会尽快就知道结果不干-所以,如果第一个值是负的,它不会需要通过休息一下.


Hab*_*bib 6

使用Enumerable.Any喜欢:

if(array.Any(r => r < 0))
{
     //Negative number found
}
else
{
   //All numbers are positive
}
Run Code Online (Sandbox Code Playgroud)

或者您可以使用Enumerable.All Like:

if(array.All(r => r > 0))
{
    //All numbers are positive 
}
else
{
   //Negative number found
}
Run Code Online (Sandbox Code Playgroud)