2013-04-17 3 views
-1

문자열 배열과 각 루프에 대해 a가 있습니다. 배열을 반복하고 각 필드에 대해 무언가를 수행 한 다음 각 필드의 결과를 새 변수에 출력하려고합니다.배열의 각 필드를 변수에 할당 foreach 루프

편집 : 배열의 각 필드는 분 단위의 시간을 나타내는 숨겨진 필드에서 값을 가져옵니다. foreach 루프에서는 각 필드를 분에서 HH : mm 형식으로 변환하는 것이 저의 의도였습니다. 그런 다음 새 형식을 새 변수에 전달해야합니다.

배열 :

string[] field = new string[8]; 
     field[0] = field_0_0.Value; 
     field[1] = field_0_1.Value; 
     field[2] = field_0_2.Value; 
     field[3] = field_0_3.Value; 
     field[4] = field_1_0.Value; 
     field[5] = field_1_1.Value; 
     field[6] = field_1_2.Value; 
     field[7] = field_1_3.Value; 

Foreach 루프 :

foreach (string newfields in field) 
{ 
    //Do something to each field 
} 

나는 새로운 변수에 각 결과에 할당되어 도움을 찾고있는 부분입니다. 아무도 올바른 방향으로 나를 가리킬 수 없거나 심지어 이렇게 다른/더 나은 방법을 제안 할 수 있습니다.

미리 감사드립니다.

+1

field_0_0'와'의 유형은 무엇입니까 ...? –

+0

문자열은 숨겨진 필드에서 값을 가져옵니다. –

+0

루프를 마쳤 으면 별도의 변수에서 루프를 수행 한 후에 조작 된 결과를 사용할 수 있습니까? 단순히 필드 배열을 다시 사용할 수 없습니까? 아니면 원래 값을 유지해야합니까? – Yeronimo

답변

2

그냥 일반 for 루프를 사용하십시오.

for(int i=0;i<field.Length;i++) { 
    string curValue = field[i]; 

    // do something with curValue, change it in some way 

    field[i] = curValue; //update 
} 

귀하가 요청한 것이 아닌 경우 명확히하십시오.

+0

이것은 나를 위해 일했습니다. 대단히 감사합니다! 질문이 불분명 한 경우 사과드립니다. –

1

foreach가 아닌 열거중인 개체를 변경할 수 있습니다. for 루프를 사용해야합니다. 의견

List<string> mylist = new List<string>(); 
    mylist.Add("item1"); 
    mylist.Add("item2"); 

    for (int i = 0; i < mylist.Count; i++) 
    { 
     mylist[i] = mylist[i].Replace("i", "o"); 
    } 
+0

당신은 for/foreach를 사용하여 목록 안의 항목에 값을 할당 할 수 있습니다.이 경우에는 두 개의 목록이 필요 없습니다. 목록에있는 항목을 현재 열거하고 제거 할 수 없습니다. –

+0

흠 왜이 작동하지 않습니다 : '목록 mylist = 새로운 목록 (); mylist.Add ("item1"); mylist.Add ("item2"); foreach (mylist의 문자열 항목) { item = replace ("e", "o"); }' – Yeronimo

1

대신 foreach 사용 for에 수정 된 샘플 감사의 foreach 당신이 당신의 값을 변경할 수 없습니다.

는 사용하십시오 for 하나 같이 :

for(int i = 0; i < field.Length; i++) 
    //Do something to each field 
    field[i] = "text"+i;