2014-10-09 32 views
0

我的函數返回2個值的int數組 比方說,RES [0]和RES [1]感嘆號在陣列中存儲多個函數調用

當我打電話陣列中的for循環多次,當我將結果存儲在另一個數組中時,在每次迭代中結果都會覆蓋新結果。

如果第一次調用返回[0,1],則數組將在索引[0]和[1]處存儲[0,1],這很好,但是當我再次調用該函數時,新結果存儲在相同的索引[0]和[1] 我怎樣才能避免這種情況?

功能代碼:

private void MatrixMul(string subInput, int[,] key, int [] result) 
    { 
     for (int row = 0; row < key.GetLength(0); row++) 
     { 
      for (int col = 0; col < key.GetLength(0); col++) 
      { 
       result[row]+= key[row, col] * AtoZ.IndexOf(subInput[col]); 
      } 
     } 
    } 

長途區號:

for (int i = 0; i < outPut.Length; i++) 
      { 
       MatrixMul(outPut[i], key,encChars); 
      } 

例如,我的輸出包含以下內容: 「TH」, 「IS」, 「AT」 當我打電話具有數組「TH」的第一個元素的函數,它將「T」轉換爲其等效數並應用一些計算,並將其與「H」相同。假設最終答案是「T」爲20,「H」爲30。 問題是,每一次,encChars將存儲在索引0和1的值: encChars [0] = 20 encChars [1] = 30 當我再次調用函數時,它會將新值存儲在0和1 ....這是因爲我沒有在每次調用中更改encChars的索引值,所以我該怎麼做?

回答

0

如果您想累積給定數組中的值,那麼不要在您的方法內創建一個新值,而是將其聲明爲參數並修改值。

+0

我想要調用數組中的所有值「i times」.. 我沒有得到你在暗示什麼 – WaelT 2014-10-09 05:54:53

+0

如果你發佈更多的調用代碼,包括一個示例輸入爲您的方法和您的預期結果。 – mreiterer 2014-10-09 07:55:28

+0

我編輯了帖子並添加了更多詳細信息 – WaelT 2014-10-09 12:43:05