我有以下数组:
float[] arr = { 0, 0.1f, 0, 0.1f, 0, 0.2f };
选择大于0或大于其他值的最小值的最优雅方法是什么?
我试过使用Min()
,Select...From...OrderBy...First()
但直到现在还没有运气。
您可以使用排除值Where
,然后应用Min
:
array.Where(a => a > 1 && a < 10).Min();
如果所有数据都小于您的“其他值”,则所有当前答案都会出现异常。因此,如果这不是您想要的,您将null
在这种情况下使用以下代码:
float[] arr = { 0, 0.1f, 0, 0.1f, 0, 0.2f };
var someOtherValue = 0;
var min = arr.Where(x => x > someOtherValue)
.Cast<float?>()
.Min();