2011-09-08 41 views
2

如何修复此代码以填充阵列x,双打从1.015.0双打数组

int temp = 15; 

string[] titles = new string[] { "Alpha", "Beta", "Gamma", "Delta" }; 
List<double[]> x = new List<double[]>(); 
for (int i = 0; i < titles.Length; i++) 
{ 
    for (int j = 0; j < temp; j++) 
    { 
     x.Add[i][j]((double) j); 
    }  
} 
+1

这不回答你的问题,但你可以改变法官在以翻番的类型以避免不得不将它投掷到双倍。 – mydogisbox

+0

我不确定你的意思是“数组x”。 x目前是一个列表。你的意思是你想要填充每个x [0]到x [3],每个数组包含1.0到15.0? – mydogisbox

+0

小备注:你从0..14运行你的for循环,你想要插入的值是j + 1,而不是j –

回答

1

如果上述回答我的问题是“是”,那么这里是一个答案:

 int temp = 15; 

     string[] titles = new string[] { "Alpha", "Beta", "Gamma", "Delta" }; 
     List<double[]> x = new List<double[]>(); 
     for (int i = 0; i < titles.Length; i++) 
     { 
      double[] test = new double[15]; 
      for (int j = 1; j <= temp; j++) 
      { 
       test[j-1] = j; 
      } 
      x.Add(test); 
     } 
+0

'时丢失'单行是很常见的。你需要改变'test [j] = j + 1;' – Reniuz

+0

@Reniuz我已经修复了这个问题。 – mydogisbox

+0

现在编号'test [0]'等于'0'。你需要'for(int j = 0; j Reniuz

1
int temp = 15; 

string[] titles = new string[] { "Alpha", "Beta", "Gamma", "Delta" }; 
List<double[]> x = new List<double[]>(); 

for (int i = 0; i < titles.Length; i++) 
{ 
    double[] y = new double[temp]; 

    for (int j = 0; j < temp; j++) 
    { 
     y[j] = j + 1; 
    } 

    x.Add(y); 
} 

作为一个说明,x可能是一个Array

或者,您可能并不需要的Listdouble。你可以简单地使用double[]的锯齿阵列。

int temp = 15; 

string[] titles = new string[] { "Alpha", "Beta", "Gamma", "Delta" }; 
double[][] x = new double[titles.Length][]; 

for (int i = 0; i < titles.Length; i++) 
{ 
    double[] y = new double[temp]; 

    for (int j = 0; j < temp; j++) 
    { 
     y[j] = j + 1; 
    } 

    x[i] = y; 
} 
+0

我认为在将数组放入另一个数组之前,最好修改它,否则你正在修改已经传递给别的东西。 – mydogisbox

+0

@mydogisbox至少你别忘了把它复制到别的地方!当这个代码使用0..14填充测试时,在接近这个大的'' – xanatos