如何检查数组中的所有元素是否都是正整数
本文关键字:是否 元素 整数 何检查 检查 数组 | 更新日期: 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";