Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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# 使用foreach定义变量_C#_Variables_Foreach_Syntax - Fatal编程技术网

C# 使用foreach定义变量

C# 使用foreach定义变量,c#,variables,foreach,syntax,C#,Variables,Foreach,Syntax,正如您在上面看到的,我以前的代码太长了。(上面只列出了2项,但我的代码中还有更多项。)我想在一行中定义变量。 我不好意思问这些关于堆栈溢出的简单问题,但我在web上找不到正确的语法。您需要在循环之前声明这两个数组。我建议使用正常的for循环。这将为您提供一个索引变量,您可以使用它来指向数组中的位置。此外,它还允许您设置数组的长度并避免使用数组xarray,因为如果从i=0开始,索引变量将遍历所有这些值,以步长1i++递增,并在i停止,则需要在循环之前声明两个数组。我建议使用正常的for循环。这将

正如您在上面看到的,我以前的代码太长了。(上面只列出了2项,但我的代码中还有更多项。)我想在一行中定义变量。
我不好意思问这些关于堆栈溢出的简单问题,但我在web上找不到正确的语法。

您需要在循环之前声明这两个数组。我建议使用正常的for循环。这将为您提供一个索引变量,您可以使用它来指向数组中的位置。此外,它还允许您设置数组的长度并避免使用数组
xarray
,因为如果从
i=0开始,索引变量将遍历所有这些值,以步长1
i++
递增,并在
i停止,则需要在循环之前声明两个数组。我建议使用正常的for循环。这将为您提供一个索引变量,您可以使用它来指向数组中的位置。此外,它还允许您设置数组的长度并避免使用数组
xarray
,因为如果从
i=0开始,索引变量将遍历所有这些值,以步长1
i++
递增,并在
i停止,这实际上可以使用Linq轻松完成<代码>可枚举。范围
可以为您提供所需的0-21个值,然后只需使用
选择
对每个
x
值运行公式,然后使用第二个公式对
x
值执行另一个
选择

int finalNumber = 20;
double x[] = new double[finalNumber+1]  // +1 because you want to include the value 20
double z[] = new double[finalNumber+1]

for (int i = 0; i <= finalNumber; i++)
{
    x[i] = xPT / 20 * i;
    z[i] = Math.Pow(x[i] / Hd , 1.85) / 2 * Hd);
}

或者,如果愿意,您可以使用
ToArray

这实际上可以使用Linq轻松完成<代码>可枚举。范围
可以为您提供所需的0-21个值,然后只需使用
选择
对每个
x
值运行公式,然后使用第二个公式对
x
值执行另一个
选择

int finalNumber = 20;
double x[] = new double[finalNumber+1]  // +1 because you want to include the value 20
double z[] = new double[finalNumber+1]

for (int i = 0; i <= finalNumber; i++)
{
    x[i] = xPT / 20 * i;
    z[i] = Math.Pow(x[i] / Hd , 1.85) / 2 * Hd);
}

或者,如果愿意,您可以使用
ToArray

您也可以使用
for
循环来初始化
xarray

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();
var size=21;
var xarray=新整数[大小];
var x=新的双[尺寸];
var z=新的双[尺寸];
对于(int i=0;i
您可以使用
for
循环来初始化
xarray

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();
var size=21;
var xarray=新整数[大小];
var x=新的双[尺寸];
var z=新的双[尺寸];
对于(int i=0;i
@rory.ap实际上,对我来说,上面的代码似乎并不完整。您需要在foreach之前定义
x
z
数组,然后在foreach中相应地填充它们。您已经双重声明了x。一次用于循环变量,另一次作为循环内的数组。@rory.ap实际上,对我来说,上面的代码似乎并不完整。您需要在foreach之前定义
x
z
数组,然后在foreach中相应地填充它们。您已经双重声明了x。一次用于循环变量,另一次作为循环中的数组。我不知道为什么,但它不起作用。粘贴此代码时,我会遇到一些错误。“无法将类型'double[]'隐式转换为'double'”无法将带[]的索引应用于类型为'double'的表达式@MeriçI出错。我在计算中更正了它,我只使用了索引,而不是
x[I]
。我不知道为什么,但它不起作用。粘贴此代码时,我会遇到一些错误。“无法将类型'double[]'隐式转换为'double'”无法将带[]的索引应用于类型为'double'的表达式@MeriçI出错。我在计算中更正了它,我只使用了索引,而不是
x[I]
。现在它应该可以正常工作了Hello,MessageBox.Show(x[i].ToString());当我把它写到代码的末尾时,它会像预期的那样显示每个值。但是,如果我想得到一个像x[7]这样的特定值呢?我自己计算出了这部分。Show(x[5].ToString());这个答案正是我想要的。您好,MessageBox.Show(x[i].ToString());当我把它写到代码的末尾时,它会像预期的那样显示每个值。但是,如果我想得到一个像x[7]这样的特定值呢?我自己计算出了这部分。Show(x[5].ToString());这个答案正是我想要的。