我有以下输入:
double zmin;
double zmax;
int count;
int N; //Total number of element in result array
我想生成一个双数组序列,其中 zmin 作为第一个值,zmax 作为最后一个值。但是从第二个值到最后一个值,它应该由 (zmax-zmin)/count 步进。
例子:
zmin = 1;
zmax = 10;
count = 3
预期结果:
double[] result = { 1, 4, 7, 10}
我的尝试:
double[] result = Enumerable.Repeat(zmin, N).Select(iv => (iv +(zmax-zmin)/count)).ToArray();
最佳答案
public static IEnumerable<double> Range(double min, double max, double step)
{
double i;
for (i=min; i<=max; i+=step)
yield return i;
if (i != max+step) // added only because you want max to be returned as last item
yield return max;
}
关于c# - 生成带步长值的序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7552839/