2013-08-16 76 views
1

我在C#中拥有此代码,但它可以达到1000页。我怎样才能让变量的名字是page_i,而不必写一个case并且写出1000个case呢?如何更改变量名称

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

您是否实际输入了1000? – 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到列表?谢谢 – JNL

+0

因为你原来的东西不会编译。我想你是指'列表'。 –

+0

自从在C#2.0中引入泛型以来,ArrayList已经过时。 – lukegravitt