将for循环存储到数组中

时间:2019-07-20 05:00:28

标签: c#

我想将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.
}

4 个答案:

答案 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。