首页 > 解决方案 > C# 线性函数,带有 null 的小数数组

问题描述

如何在C#中写一个线性函数,它来自数据库表的字段values = decimal(10,2) null

例如

{10,00; null; null; null; null; null; null; null; 12.00}

我会得到:

{10; 10.25; 10.50; 10.75; 11.00; 11.25; 11.50; 11.75; 12,00}. 

数组的大小和“null”元素的数量是未知的。

只有第一个和最后一个元素是已知的。在此示例中,为 10,00 和 12,00。

标签: c#functiondecimal

解决方案


您可以遍历数组并每次添加步骤:

var array = new double?[]{10.00, null, null, null, null, null, null, null, 12.00};

var step = (array.Last() - array.First()) / (array.Length - 1);
for (var i = 1; i < array.Length - 1; i++)
{
    array[i] =  array[i - 1] + step;
}

在线尝试!

此外,您可以像这样使用 Linq:

var result = array.Select((x, i) => array[0] + step * i);

在线尝试!


推荐阅读