2014-11-29 2 views
0
int L = 2; 
int M = 0; 
for (int i = 1; i <= 6; i++) 
{ 
    foreach (char c in ListLines[L]) 
    { 
     if(c == 'A')arrayOne[M]++; 
     if(c == 'B')arrayTwo[M]++; 
     if(c == 'C')arrayThree[M]++; 
    } 
    L =+ 2; 
    M++; 
} 

안녕하세요! 나는 지금 C#을 배우고 있으며 배열을위한 for 루프를 만들려고하고있다. 내가 정말로 알아야 할 것은 정수 (int M)를 생성하고 그 배열의 객체를 정의하는 데 사용할 수 있습니까? 예 : arrayOne[M]? 이렇게하면 루프를 만들 수있는 카운터를 만들 수 있습니다.C# 정수를 사용하여 배열 이름을 지정할 수 있습니까?

+0

어떤 루프를 만드시겠습니까? 'M '은 무엇을 나타 냅니까? 왜 기존의 루프 변수'i' 대신에 이것을 사용하고 있습니까? "모든 물체에 대해 동일한 결과물"은 무엇을 의미합니까? 코드에 대한 입력을 정확히 표시하고 결과가 무엇이며 원하는 것과 다른 결과가 무엇인지 정확하게 설명하십시오. http://stackoverflow.com/help/mcve 및 http://stackoverflow.com/help/how-to-ask –

+0

지그재그 형 배열'int [] [] array'을 살펴 보겠습니다. 따라서'array [1] [M] ++'처럼 접근 할 수 있습니다. – ja72

답변

4

네, 문제없이 배열에서 색인을 사용할 수 있습니다. 왜 항상 동일한 출력을 얻는 지에 관해서는 배열의 선언을 봐야합니다.

하지만 귀하의 경우 여러 배열 대신 사전을 사용하는 것이 더 합리적입니다. 참조 : http://csharp.net-informations.com/collection/dictionary.htm

여기에, 아래의 요청으로는 사전에 예입니다

var charDict = new Dictionary<char, int> 

for (int i = 1; i <= 6; i++){ 
    foreach (char c in ListLines[i]) { 
      charDict[c]++; 
     } 
    }  

참고 : 솔직히 코드 로직을하지 않았다 때문에, 당신의 코드와 같은 방식으로 작동하지 않습니다 .

+1

사전을 사용하여이를 해결하는 예는 좋은 대답입니다. –

+0

안녕하세요, 답변 주셔서 감사합니다. 작품은 실제로 교과 과정이기 때문에 모든 것을 게시하는 것으로 결정했습니다. 실제로 필요한 것은 괄호 안의 정수를 aMarks [M] 대신 aMark [1]로 사용하는 것과 관련된 올바른 방향의 포인터였습니다. – Willi4m

+0

예 어레이의 사용법에 이상이있는 것은 아닙니다. 또한 Visual Studio 또는 하강 C# 컴파일러를 사용하는 경우 컴파일시 오류가 없으면 런타임에 예외를 가질 수는 없지만 코드 구문은 유효하다는 것을 고려해야합니다). – wbuch

관련 문제