C# 浮点范围的紧凑LINQ语法?
是否有一种紧凑、内置的方法可以使用给定的C# 浮点范围的紧凑LINQ语法?,c#,.net,linq,C#,.net,Linq,是否有一种紧凑、内置的方法可以使用给定的步骤生成从min到max的浮动范围 例如:范围(10,20,0.1)[但内置]。不,没有内置内容。不过,编写静态方法确实很容易。比如: public static IEnumerable<float> FloatRange(float min, float max, float step) { for (float value = min; value <= max; value += step) { yi
步骤生成从min
到max
的浮动范围
例如:范围(10,20,0.1)[但内置]。不,没有内置内容。不过,编写静态方法确实很容易。比如:
public static IEnumerable<float> FloatRange(float min, float max, float step)
{
for (float value = min; value <= max; value += step)
{
yield return value;
}
}
你可以
Enumerable.Range(100, 100).Select(i => i / 10F)
但是它不是很具有描述性。您如何看待与LINQ合作,或者这与LINQ有什么关系?谢谢Jon。只是对内置版本好奇而已。:-)不要使用加法,而是使用乘法以获得更高的精度。如果您想确保在范围内命中max
,则需要与for循环中的max
进行近似比较,而不仅仅是,我想注释应该是这样的:“非常感谢!亲爱的jon”@Ron:是的,最终可能会略高于给定的最大值-在这种情况下,max
不会返回,但仍会终止。如果您想绝对保证返回max
,您需要更改它,我同意。
foreach (float x in 10f.To(20f).Step(0.1f))
{
...
}
Enumerable.Range(100, 100).Select(i => i / 10F)