我有以下数组:
float[] arr = { 0, 0.1f, 0, 0.1f, 0, 0.2f };
选择大于 0 或大于其他值的最小值的最优雅方法是什么?
我尝试使用Min()
和Select...From...OrderBy...First()
,但直到现在都没有运气。
答案 0 :(得分:21)
答案 1 :(得分:4)
您可以使用Where
排除值,然后应用Min
:
array.Where(a => a > 1 && a < 10).Min();
答案 2 :(得分:3)
答案 3 :(得分:2)
如果所有数据都小于“其他某个值”,则所有当前答案都将获得例外。所以,如果那不是你想要的,那么在这种情况下你会得到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();