2010-12-08 2 views
3

내가C#을 - 스타일의 PHP는 "평가"

label1, label2 , ............... 

내가 12 개 숫자의 배열을 가지고있는 형태로 내가 이름 12 개 레이블이, C#에서 Windows 응용 프로그램을 제가

각각 배열 에서 모든 레이블 항목에 루프에 값을 할당 할

int[] nums = new int[12] {1, 0, 4, 6,.............}; 

:

같은 (일부 계산 후)

비슷한 것

for (int i = 1; i <= 12; i++) { 
    label+i.Text = nums[i-1].ToString(); 
    } 

효율적인 방법은 무엇입니까?

감사

답변

7

라벨의 해당 배열 만들기 :

Label[] labels = new Label[12] { label1, label2, ... }; 

for(int i = 0; i < 12; i++) 
{ 
    labels[i].Text = nums[i].ToString(); 
} 
5

을 레이블 모두가 동일한 제어 (예를 들어 패널)을 소유하고있는 경우이 과제를 수행하기 위해 찾기 컨트롤을 사용할 수 있습니다 :

for(int i = 0;i < 12; i++) 
{ 
    Label lbl = myPanel.FindControl("Label" + i.ToString()); 
    lbl.Text = nums[i].ToString(); 
} 
+1

브라이언의 솔루션이 더 효율적입니다. – Amy

+0

@ yodaj007 - 사이클에는 효율적이지만 저장 공간에는 효율적이지 않습니다. 두 경우 모두, 우리는 사소한 리소스 차이에 대해 이야기하고 있으므로 코드 스타일의 문제가됩니다. 두 가지 모두 궁극적으로 동일한 결과를 얻습니다. –

1

당신은 이름에 따라 컨트롤을 찾습니다 FindControl 방법을 사용할 수 있습니다 :

for (int i = 0; i < nums.Length; i++) { 
    (Form.FindControl("label" + i.ToString()) as Label).Text = nums[i].ToString(); 
}