如何才能在数组C中找到正的最小数字# 我使用Console.WriteLine(“最小号是{0}”,myarray.Min())
答案 0 :(得分:3)
假设int[]
作为输入:
int minPosNum = myarray.Where(i => i > 0).Min();
如果没有正数,则抛出InvalidOperationException
。因此,您可以使用DefaultIfEmpty
代替此方法:
int minPosNum = myarray.Where(i => i > 0).DefaultIfEmpty(int.MinValue).Min();
这里有作业答案,请使用循环:
int minPosNum = int.MaxValue;
foreach (int i in myarray)
if (i > 0 && i < minPosNum)
minPosNum = i;
此循环只有一个问题:如果结果为int.MaxValue
,您就不知道是否存在正数,因为这可能意味着没有,或者只有int.MaxValue
在数组中。然后你可以使用这种笨拙的方法:
int minPosNum = int.MaxValue;
bool positiveNumberFound = false;
foreach (int i in myarray)
{
if (i > 0)
{
positiveNumberFound = true;
if(i < minPosNum) minPosNum = i;
}
}
答案 1 :(得分:1)
只需使用Where
消除Min
之前的负数:
myarray.Where(x => x >= 0).Min()