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

本文关键字:是否 元素 整数 何检查 检查 数组 | 更新日期: 2023-09-27 18:13:00

我有一个数组,比如

int[] array = new int[] { 1, 5, 11, 5 };

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

所需输出:

如果所有数字都是正数,则显示" 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";

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

你之前就差不多做到了——但是你比较的是字符而不是整数。

如果你想检查是否所有内容都是严格正的,使用:

bool allPositive = array.All(x => x > 0);

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

bool allNonNegative = array.All(x => x >= 0);

你一定要考虑一下你想用0做什么,因为你的问题陈述实际上是矛盾的。("全部是肯定的"answers"没有否定的"不是一回事。)

请注意,就像Any一样,All一旦知道结果就会退出-所以如果第一个值是负的,它就不需要查看其余的

使用Enumerable。如:

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

或者您可以使用Enumerable。都喜欢:

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

你就快成功了。但是在你的情况下,你比较的是字符而不是整数,这在你的情况下是错误的。

使用Enumerable.All like;

判断一个序列的所有元素是否满足一个条件。

int[] array = new int[] { 1, 5, 11, 5 };
bool allPositive = array.All(x => x > 0);
Console.WriteLine(allPositive);

这是一个DEMO

记住0不是阳性的

下面是你的问题的c#解决方案(它应该是相当有效的性能方面):

int[] array = new int[] { 1, 5, 11,5 };
bool _allPositive=true;
for (int i=0;i<array.length;i++){
 if(array[i]<0 {_allPositive=false; break;}
}

bool _allPositive表示结果(如果您愿意,可以使用字符串var)。从本质上讲,相同的语法可以应用于类似java的语言,包括脚本。

string result = array.Any(x => x < 0)?"Wrong":"Positive";