使用给定的步数获取给定最小值和最大值的可枚举范围

Mic*_*kus 14 c# range winforms

我熟悉用于生成值枚举的Enumerable.Range方法.但我想略有不同.我想提供最小值,最大值和一些所需的点.

IE:

Method(double min, double max, int numberOfSteps)

服用

Method(0, 1000, 11);

会回来的

0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000

我认为这样的事情,必须有一个内置的方法,但我的搜索没有任何改变.我错过了什么吗?

Jon*_*eet 30

除了你想要的价值之外double,其他一切都可以完成Enumerable.Range.我不认为有任何内置的东西可以做你想要的东西,但在以下方面实现它是微不足道的Enumerable.Range:

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

我已经仔细地写了这些内容,以便你总是得到最终的价值.如果你说你只需要一个步骤就可以实现bork ...你可能想要防范它并Enumerable.Repeat(min, 1)在那种情况下使用它.

  • 一如既往的无可挑剔! (6认同)