int[] xarray = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
foreach (int x in xarray)
{
double x[] = xPT / 20 * [];
double z[] = Math.Pow(x[] / Hd , 1.85) / 2 * Hd);
}
/* My previous code was;
x0 = xPT / 20 * 0;
x1 = xPT / 20 * 1;
x2 = xPT / 20 * 2;
x3 = xPT / 20 * 3;
x4 = xPT / 20 * 4;
x5 = xPT / 20 * 5;
x6 = xPT / 20 * 6;
x7 = xPT / 20 * 7;
x8 = xPT / 20 * 8;
x9 = xPT / 20 * 9;
x10 = xPT / 20 * 10;
x11 = xPT / 20 * 11;
x12 = xPT / 20 * 12;
x13 = xPT / 20 * 13;
x14 = xPT / 20 * 14;
x15 = xPT / 20 * 15;
x16 = xPT / 20 * 16;
x17 = xPT / 20 * 17;
x18 = xPT / 20 * 18;
x19 = xPT / 20 * 19;
x20 = xPT / 20 * 20;
z0 = Math.Pow(x0 / Hd, 1.85) / 2 * Hd;
z1 = Math.Pow(x1 / Hd, 1.85) / 2 * Hd;
z2 = Math.Pow(x2 / Hd, 1.85) / 2 * Hd;
z3 = Math.Pow(x3 / Hd, 1.85) / 2 * Hd;
z4 = Math.Pow(x4 / Hd, 1.85) / 2 * Hd;
z5 = Math.Pow(x5 / Hd, 1.85) / 2 * Hd;
z6 = Math.Pow(x6 / Hd, 1.85) / 2 * Hd;
z7 = Math.Pow(x7 / Hd, 1.85) / 2 * Hd;
z8 = Math.Pow(x8 / Hd, 1.85) / 2 * Hd;
z9 = Math.Pow(x9 / Hd, 1.85) / 2 * Hd;
z10 = Math.Pow(x10 / Hd, 1.85) / 2 * Hd;
z11 = Math.Pow(x11 / Hd, 1.85) / 2 * Hd;
z12 = Math.Pow(x12 / Hd, 1.85) / 2 * Hd;
z13 = Math.Pow(x13 / Hd, 1.85) / 2 * Hd;
z14 = Math.Pow(x14 / Hd, 1.85) / 2 * Hd;
z15 = Math.Pow(x15 / Hd, 1.85) / 2 * Hd;
z16 = Math.Pow(x16 / Hd, 1.85) / 2 * Hd;
z17 = Math.Pow(x17 / Hd, 1.85) / 2 * Hd;
z18 = Math.Pow(x18 / Hd, 1.85) / 2 * Hd;
z19 = Math.Pow(x19 / Hd, 1.85) / 2 * Hd;
z20 = Math.Pow(x20 / Hd, 1.85) / 2 * Hd;
*/
如上所示,我之前的代码太长了。 (上面只列出了2项,但我的代码中有更多项。)我想在一行中定义变量。 在堆栈溢出时问这些简单的问题我感到很惭愧,但我无法在网上找到正确的语法。
答案 0 :(得分:3)
使用Linq实际上可以轻松完成。 Enumerable.Range
可以为您提供所需的0-21值,然后只需使用Select
在每个x
值上运行公式,然后在{{Select
上执行另一个x
1}}使用第二个公式获取z
值。
var x = Enumerable.Range(0,21).Select(i => xPT / 20.0 * i).ToList();
var z = x.Select(xi => Math.Pow(xi / Hd, 1.85) / 2.0 * Hd).ToList();
如果您愿意,也可以使用ToArray
。
答案 1 :(得分:2)
您还可以使用for
循环初始化xarray
:
var size = 21;
var xarray = new int[size];
var x = new double[size];
var z = new double[size];
for (int i = 0; i < size; i++)
{
xarray[i] = i;
x[i] = xPT / 20 * xarray[i];
z[i] = Math.Pow(x[i] / Hd, 1.85) / 2 * Hd;
}
答案 2 :(得分:1)
您需要在循环之前声明两个数组。我建议使用正常的for循环。这将为您提供一个索引变量,您可以使用它来指向数组中的位置。此外,它还允许您设置数组的长度并避免使用数组xarray
,因为如果从i=0
开始,索引变量将遍历所有这些值,步长为1 {{ 1}}并停在i++
i<=20
这是for循环中的small introduction和索引变量的使用