C# DataTable 最小值不包括 NaN

C# DataTable Min Value excluding NaN

我在 C# 中遇到数据表问题。我想在具有 NaN 值的数据表中找到列的最小值。例如:

c1  c2  c3
1   2   3
4   NaN NaN
NaN 7   9

假设我想在 c1 中找到最小值,我会这样做:

int minValue = Convert.ToInt32(dt.Compute("min([c1])", string.Empty));

或:

int minValue = dt.AsEnumerable().Min(r => r.Field<int>("c1"));

我希望它们都是 return 一个整数值(在这种情况下:1)但是它们都是 returns

NaN

我正在使用 .NET 4.6.1。有没有办法告诉数据表在计算最小值时排除 NaN 值? (令人惊讶的是,当我搜索这个时,似乎没有人有类似的问题。)

使用 Linq 的 Where and Min 函数:

double FindColumnMinValue(IEnumerable<double> columnValues) => columnValues.Where(c => !double.IsNaN(c)).Min();