什么是最有效的方法
使用linq初始化一个大小为n
的float数组
例如,如果从0.05208
1.06771
我会
float[] x = {1.06771, 1.11979, 1.17187, 1.22395}
答案 0 :(得分:4)
您可以使用Range
方法,如下所示:
var x = Enumerable.Range(0, n).Select(i => 1.06771f + 0.05208f * i).ToArray();
作为一项有趣的练习,您还可以像这样创建自己的iterator:
public IEnumerable<float> Sequence(float start, float step)
{
while (true) {
yield return start;
start += step;
}
}
然后像这样使用它:
var x = Sequence(1.06771f, 0.05208f).Take(n).ToArray();
注意:请注意start += step
会导致舍入错误在迭代序列时累积。
答案 1 :(得分:3)
您可以使用Enumerable.Range()
。它给出了start和count参数的连续整数范围。
float[] x = Enumerable.Range(0, 4)
.Select(n => 1.06771f + 0.05208f * n).ToArray();