2016-06-23 2 views
0

안녕 얘들 아 나는 내 2 차원 배열 값의 총합을 검색하는 검색 방법을 만들려고합니다. 사용자 입력을 채우기 위해 배열을 만들었지 만 모든 배열 값을 합하는 방법을 모르겠습니다. 나는 아직도 배우고있다.2d 배열 값의 총합 C#

public int[,] ToysMade = new int[4, 5]; 
public String[] days = new String[] { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" }; 

    public void UserInput() 
    { 
     String value; 
     int numCount; 


     //retrieveing length of ToysMade array dimensions if less than 0 repeat untill last dimension filled 
     for (int i = 0; i < ToysMade.GetLength(0); i++) 
     { 
      for (int ii = 0; ii < ToysMade.GetLength(1); ii++) 
      { 
       //taking user input for array dimension 0 "first dimension" then increment it by 1 after input ready for next dimension "i + 1" 
       value = Microsoft.VisualBasic.Interaction.InputBox("Enter Value For " + days[ii] + " of week " + (i + 1).ToString() + " Enter Value"); 

       try 
       { 
        //making sure for only int past through 
        while (!(int.TryParse(value, out numCount))) 
        { 
         MessageBox.Show("Not a valid number, please try again."); 
         value = Microsoft.VisualBasic.Interaction.InputBox("Enter Value for " + days[i] + " of week " + (i + 1).ToString() + " Enter Value"); 
        } 
        // taking values enterd from user and set next dimension for next input by incrementing it 
        ToysMade[i, ii] = numCount; 

       } 
       catch (Exception e) 
       { 
        MessageBox.Show("Value enterd is not in a valid format"); 
       } 
      } 
     } 
    } 
+0

이 늘 문제를 해결하지만, 중첩 루프와 인덱스에 대한 i와 j를 사용하는 아주 정상입니다. 합산에 관해서는 중첩 된 루프를 사용하고 각 요소의 값을 합 변수에 추가하면서 작성한 것처럼 읽으십시오. – Jacobr365

+0

괜찮아요. 아프세요. 감사합니다. Jacobr365 – Ronzkie

답변

1

나는 2 차원 배열

에 대한 일반적인 간단한 foreach는 루프

int total = 0; 

    foreach (var item in ToysMade) 
    total += item; 

또는 중첩 루프 하나를 넣어 제안

int total = 0; 

    for (int i = 0; i < ToysMade.GetLength(0); i++) 
    for (int j = 0; j < ToysMade.GetLength(1); j++) 
     total += ToysMade[i, j]; 
+0

정말 고맙습니다. 고마워요. 드미트리 – Ronzkie

0

당신은 ToysMade에서 IEnumerable<int>을 만들어 Linq에 사용할 수 있습니다;

var total = ToysMade.Cast<int>().Sum(); 
0

고마워 멋진 작품 덕분에 힙 다시

public void Sum() 
    { 
     int total = 0; 

     for(int i = 0;i < ToysMade.GetLength(0); i++) 
     { 
      for(int j = 0;j < ToysMade.GetLength(1); j++) 
      { 
       total += ToysMade[i, j]; 
      } 
     } 
     txtOutput.Text += "\r\nThe sum of products is: " + total.ToString(); 
    }