数组的最小值大于其他值

本文关键字:其他 大于 最小值 数组 | 更新日期: 2023-09-27 17:51:11

我有以下数组:

float[] arr = { 0, 0.1f, 0, 0.1f, 0, 0.2f };

选择大于0或大于其他值的最小值的最优雅方法是什么?

我试过使用Min()Select...From...OrderBy...First(),但直到现在都没有成功。

数组的最小值大于其他值

使用LINQ方法Where过滤掉零值,然后使用LINQ法Min检索结果集合的最低值。

arr.Where(f => f > 0).Min();

您可以使用Where排除值,然后应用Min:

array.Where(a => a > 1 && a < 10).Min();

尝试使用Where过滤器;

基于谓词筛选值序列。

使用CCD_ 8方法后。

返回值序列中的最小值。

arr.Where(a => a > 0).Min();

这是一个DEMO

如果所有数据都小于您的"其他值",则所有当前答案都将得到异常。所以,如果这不是你想要的,那么在这种情况下,你会得到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();