2012-11-23 111 views
0

我有一個項目列表,我想打印到控制檯進行調試,但我只想一次顯示3個項目,但這是一個功能,因此它需要知道在哪裏它離開了,所以它可以從以前的3個項目開始,我怎麼能做到這一點?從列表中顯示X個項目

static void list(Boolean nextPage) 
{ 
    static List<Item> _items = new List<Item>(); 
    //if(nextPage) display next page    
    Console.WriteLine("Press numbers 1 - 3 to display more info on an item or press 4 for next page...\r\n"); 
    int count = 0; 
    foreach (Item item in _items) 
    { 
     Console.WriteLine((count + 1) + ": Name: " + item.itemName + ", "); 

     count++; 
    } 
    Console.WriteLine(("4: Next Page"); 
} 

回答

4

讓你的函數非靜態,添加一個變量來存儲你迄今所顯示的最後一個項目,使用該變量來決定從哪裏開始下上市,並通過每次3推動這一值你會經歷這個功能。

這裏是一個粗略的估計你如何能做到這一點 - 這將可能無法正常工作,一個複製粘貼更換的功能,但它應該給你做什麼的想法:

int lastPosition; 

void list(Boolean nextPage) { 
    if(!nextPage) { 
     lastPosition = 0; 
    } 
    Console.WriteLine("Press numbers 1 - 3 to display more info on an item or press 4 for next page...\r\n"); 
    foreach (Item item in _items.Skip(lastPosition).Take(3)) 
    { 
     Console.WriteLine((count + 1) + ": Name: " + item.itemName + ", "); 
    } 
    lastPosition += 3; 
    Console.WriteLine(("4: Next Page"); 
} 
+0

非常感謝你這工作完美 –

0

在方法範圍內創建的所有內容在退出時都會被丟棄,除非您向調用方法的任何人返回值。

所以,你有兩個選擇(或更多,但這裏有二):

private static Item lastItem; 

有了這個,你保存你的類中的最後一項顯示和檢索它的下一次內部。 或

public static Item itemlist(Boolean nextPage, Item nextItem) 
{ 
    // Some logic 
    return lastItem; 
} 

而讓任何人調用你的方法來處理變量。