我熟悉可枚举范围 http://msdn.microsoft.com/en-us/library/system.linq.enumerable.range%28v=vs.100%29.aspx生成值枚举的方法。但我想要一些稍微不同的东西。我想提供最小值、最大值和一些所需的点。
IE:
Method(double min, double max, int numberOfSteps)
taking
Method(0, 1000, 11);
会回来
0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000
我想对于这样的事情,一定有一个内置的方法,但我的搜索没有找到任何结果。我错过了什么吗?
除了您想要的值之外double
,其他一切都可以用Enumerable.Range
。我不认为有任何内置的东西可以做你想做的事,但在其之上实现是微不足道的Enumerable.Range
:
return Enumerable.Range(0, steps)
.Select(i => min + (max - min) * ((double)i / (steps - 1)));
我写得比较仔细,以便您始终得到最终值。如果你说你只想一步,它确实很无聊......你可能想防止这种情况并使用Enumerable.Repeat(min, 1)
在这种情况下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)