是否有紧凑,内置方式从min
到max
生成一系列具有给定step
的浮点数?
例如:范围(10,20,1.1)[但是内置]。
答案 0 :(得分:6)
你可以做到
Enumerable.Range(100, 100).Select(i => i / 10F)
但它不是很具描述性。
答案 1 :(得分:3)
不,内置任何东西。虽然编写静态方法真的很容易。类似的东西:
public static IEnumerable<float> FloatRange(float min, float max, float step)
{
for (float value = min; value <= max; value += step)
{
yield return value;
}
}
编辑:使用乘法的替代方法,如评论中所示:
public static IEnumerable<float> FloatRange(float min, float max, float step)
{
for (int i = 0; i < int.MaxValue; i++)
{
float value = min + step * i;
if (value > max)
{
break;
}
yield return value;
}
}
在MiscUtil中,由于Marc Gravell的通用运算符,我有一些范围代码可以做出时髦的东西,允许你:
foreach (float x in 10f.To(20f).Step(0.1f))
{
...
}