2011-09-08 70 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