我想将for循环存储到数组中,以便可以访问代码其他部分中的变量。
我已经尝试通过类似线程的几个解决方案来工作,但是无法使它们起作用。我是C#和编码的新手。谢谢!
double a[] = new double[4];
for (double PositionX = 0.0; PositionX <= 12000.0; PositionX += 3000.0)
{
//I want the result of the for loop to be stored back into my array.
}
答案 0 :(得分:2)
将数组索引存储在变量中,以对其进行解析。
double a[] = new double[4];
int i = 0;
for (double PositionX = 0.0; PositionX <= 12000.0; PositionX += 3000.0)
{
a[i] = [yourvalue];
i++;
}
或者另一种方法是使用List
。
List<int> a = new List<int>();
for (double PositionX = 0.0; PositionX <= 12000.0; PositionX += 3000.0)
{
a.Add([yourvalue]);
}
答案 1 :(得分:1)
一种方法是使用索引:
double a[] = new double[4];
int index=0;
for (double PositionX = 0.0; PositionX <= 12000.0; PositionX += 3000.0)
{
//I want the result of the for loop to be stored back into my array.
a[index++]=PositionX ;
}
有很多方法可以执行此操作,还有许多方法可以用来声明,初始化和递增索引。
您可以稍微抬起它,使其更坚固:
double a[] = new double[4];
int index=0;
double PositionX = 0.0;
for ( index=0; index<a.Length ; ++index )
{
a[index]=PositionX ;
PositionX += 3000.0
}
答案 2 :(得分:0)
首先,您必须创建一个简单的for循环并添加一个简单变量。因为在这种情况下,您没有在for循环中添加1并且您的数组具有像0、1,2之类的索引。 试试这个
double a[] = new double[4];
int i = 0;
for (double PositionX = 0.0; PositionX <= 12000.0; PositionX += 3000.0)
{
a[i] = [yourvalue];
i++;
}
答案 3 :(得分:0)
您的代码有一些缺陷。在C#中创建数组的语法为:
php
(因此[]在类型名之后而不是变量名之后)
另外,您还会得到一个double[] arrayName = new double[elmentCount];
,因为for循环中的代码将运行5次(0、3000、6000、9000和12000都小于或等于12000),但是您的数组只有4个元素长。
只需向其他解决方案中添加一些知识,您还可以使用Linq生成包含数字的数组,这些数字之间具有偶数空格。我鼓励您使用linq,因为它很棒。 :)
IndexOutOfRangeException
Enumerable.Range生成一个从0开始的整数序列,该序列具有4个元素。 Select将每个整数乘以3000.0将其投影为一个双精度整数,然后ToArray将结果转换为数组。
结果是一个包含0.0、3000.0、6000.0、9000.0的数组。如果还希望包含12000.0,则只需将4更改为5。