我说有一个阵列
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会尽快就知道结果不干-所以,如果第一个值是负的,它不会需要通过休息一下.
使用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)