2013-08-16 6 views
1

이 코드는 C#이지만 최대 1000 페이지까지 올릴 수 있습니다. 어떻게하면 변수를 가질 필요없이 변수의 이름을 page_i로 할 수 있습니까? 당신이 페이지에 대한 참조를 유지하기 위해 좋아하는 경우에변수 이름을 변경하는 방법

int i=0; 
    while (i< sizeofallpages){ 
     switch (i) 
     { 
      case 0: 

       PdfPage page = document.AddPage(); 
       break; 
      case 1: 

       PdfPage page1 = document.AddPage(); 
       break; 
      case 2: 

       PdfPage page2 = document.AddPage(); 
       break; 
    } 
+3

배열이나 다른 컨테이너를 사용하여 모든 페이지를 보유하고 색인으로 액세스 할 수 있습니까? – AndyG

+1

변수 이름은 컴파일 된 후에는 관련이 없습니다. 또한 페이지가 case 문 외부에서 처리됩니다. – Sayse

+1

실제로 이것을 1,000으로 입력 했습니까? – asawyer

답변

6

: 그냥

page[i] 
+5

for 루프는 당신을 위해 그 카운터를 증가시킬 것입니다 ... – asawyer

+0

그 위대한 작품! 덕분에 – Diana

+0

for 루프에서도'i ++'라고 써야합니다 ... – Liel

4

당신 : 그 후

int i=0; 
PdfPage page = null; 
PdfPage[] pages = new PdfPage[sizeofallpages]; 
while (i < sizeofallpages) 
{ 
    page = document.AddPage(); 
    pages[i] = page; 
    i++; 
} 

, 당신이 페이지를 사용하려는 경우, 간단하게하여 액세스 객체 목록을 생성 한 다음 그에 따라 사용해야합니다.

List<MyObject> list = new List<MyObject>(); 

for(int count=0; i<sizeofallpages; count++){ 
    list.add(new MyObject()); 
} 

그런 다음 목록에서 개체에 액세스하십시오.

+0

@Jim 그냥 호기심에서, 왜 특별한 이유가 있습니다 ArrayList를 List 으로 편집 했습니까? 감사합니다 – JNL

+0

원래 가지고 있던 것이 컴파일되지 않았기 때문입니다. 나는 당신이'List '을 의미한다고 생각했다. –

+0

ArrayList는 C# 2.0에 제네릭이 도입 된 이래 사용되지 않습니다. – lukegravitt

관련 문제