Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 浮点范围的紧凑LINQ语法?_C#_.net_Linq - Fatal编程技术网

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)