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方法…:-)