C# 获取给定步骤数的给定最小值和最大值的可枚举范围

C# 获取给定步骤数的给定最小值和最大值的可枚举范围,c#,winforms,range,C#,Winforms,Range,我熟悉生成值枚举的方法。但是我想要一些稍微不同的东西。我想提供一个最小值、最大值和一些所需的点 即: 方法(双最小值、双最大值、整数步数) 服用 方法(0,1000,11) 会回来吗 011002003004005006007008009001000 我想像这样的东西,一定有一个内置的方法,但我的搜索没有找到任何东西。我遗漏了什么吗?除了希望值是双这一事实之外,其他一切都可以使用可枚举的.Range完成。我不认为有任何内置功能可以实现您想要的功能,但是在Enumerable.Range之上实现它

我熟悉生成值枚举的方法。但是我想要一些稍微不同的东西。我想提供一个最小值、最大值和一些所需的点

即:

方法(双最小值、双最大值、整数步数)

服用

方法(0,1000,11)

会回来吗

011002003004005006007008009001000


我想像这样的东西,一定有一个内置的方法,但我的搜索没有找到任何东西。我遗漏了什么吗?

除了希望值是
这一事实之外,其他一切都可以使用
可枚举的.Range
完成。我不认为有任何内置功能可以实现您想要的功能,但是在
Enumerable.Range
之上实现它是很简单的:

return Enumerable.Range(0, steps)
                 .Select(i => min + (max - min) * ((double)i / (steps - 1)));

我写的有点仔细,所以你总是得到最终的值。如果你说你只想迈出一步,那就错了。。。您可能希望避免这种情况,并使用可枚举。在这种情况下,请重复(min,1)

只需计算“公共差”&生成序列:

d=(最大-最小)/(步骤数-1)

现在,您可以轻松生成系列:

int [] a = new [numberOfSteps];

for(i=0; i<numberOfSteps ; i++)
{
  a[i] = min + (numberOfSteps - 1)d;
}
int[]a=new[numberOfSteps];

对于(i=0;i这真的很简单和聪明。谢谢。我会针对1步的输入来做这件事。实际上也是负的步骤。类似于
if(如果你想让值加倍怎么办?见鬼…我想用这个方法来设置测试数据…现在我需要一个测试方法来断言testdata方法…:-)