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

C# 如何检查数组中的所有元素是否都是正整数?,c#,linq,C#,Linq,比如说,我有一个数组 int[] array = new int[] { 1, 5, 11, 5 }; 我如何(以最简单有效的方式)检查所有元素是否为正?如果至少有一个数字不是正整数,系统将以负方式响应 所需输出: 如果所有数字均为正数,则显示“全部为正数”,否则显示“错误” 我的镜头 int[] array = new int[] { 1, 5, 11, 5 }; var x = array.All(c => c >= '0' && c <= '9'); i

比如说,我有一个数组

int[] array = new int[] { 1, 5, 11, 5 };
我如何(以最简单有效的方式)检查所有元素是否为正?如果至少有一个数字不是正整数,系统将以负方式响应

所需输出:

如果所有数字均为正数,则显示“全部为正数”,否则显示“错误”

我的镜头

int[] array = new int[] { 1, 5, 11, 5 };
var x = array.All(c => c >= '0' && c <= '9');
if (x == true) "Positive" else "Wrong";
int[]数组=新的int[]{1,5,11,5};
var x=array.All(c=>c>='0'&&c使用类似于:


你几乎做到了。但是在你的情况下,你比较的是字符而不是整数,这在你的情况下是错误的

使用like

确定序列的所有元素是否满足条件

这是一本书


请记住
0
不是正的。

您之前几乎就达到了这一点,但您是在用字符而不是整数进行比较

如果要检查是否所有内容都是绝对肯定的,请使用:

bool allPositive = array.All(x => x > 0);
如果您确实想检查它们是否都是非负的(即0是可接受的),请使用:

当你的问题陈述实际上是矛盾的时,你应该明确地考虑你想做什么。(“所有积极的”和“不消极的”不是同一回事。)< /P> 请注意,like会在知道结果后立即退出—因此,如果第一个值为负值,则无需查看其余值。

以下是问题的C#解决方案(从性能角度来看,它应该相当有效):

int[]数组=新的int[]{1,5,11,5};
bool _allPositive=true;
对于(int i=0;i
string result=array.Any)(x=>x<0)而言,“错误”:“正”;

数组。All(x=>x>-1)
?您应该使用
进行检查。如果OP将其表示为“所有值均为正值”,则其中任何
都小于零我认为使用
All
和阳性测试比使用
Any
和阴性测试更清楚,结果相反。OP确实提到
至少有一个负数,所以
Any
仍然有效。@VimalStan,
。Any
都有效,但Jon Skeet说使用
All
更清楚。@VimalStan JonSkeet想说的是,
All
在所有正数的上下文中更相关,是的
Any
也有效!我的解决方案更快了
:D
if(array.All(r => r > 0))
{
    //All numbers are positive 
}
else
{
   //Negative number found
}
int[] array = new int[] { 1, 5, 11, 5 };
bool allPositive = array.All(x => x > 0);
Console.WriteLine(allPositive);
bool allPositive = array.All(x => x > 0);
bool allNonNegative = array.All(x => x >= 0);
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;}
}
string result = array.Any(x => x < 0)?"Wrong":"Positive";