如何获取不包含0的数组的最小值

时间:2019-08-13 16:30:01

标签: c# asp.net

x1,x2,x3,x4和x5是用户减速的变量,用户可以在0到5之间选择。 我想获得这5个变量的最小值,但是如果其中一个或多个变量为0,我想排除那些为0的变量。

var array = new[] { x1, x2, x3, x4, x5 };  
int minarray = array.Min();

1 个答案:

答案 0 :(得分:2)

您可以使用Where过滤掉所有零值。

int min = array.Where(x => x != 0).Min();

但是,如果所有值均为零,将导致异常,因此您可以这样做

int min = array.Where(x => x != 0).DefaultIfEmpty().Min();

但是,当所有值均为0时,结果为0,这似乎是合理的。