2016-11-25 80 views
0

我想從Maibox下載我的電子郵件只有100個。但是我嘗試從低到高的循環下載數據。我想從UPER下載數據,以降低下載數據反向循環c#

enter image description here

// for (int i = count; i >=0 && i <= 100; i--) /// <--- It works but if i have e-mails more than 100 not working. 
    for (int i = 1; i <= count && i <= 100 ; i++) // <-- this download from old data to new. 

    OpenPop.Mime.Message message = client.GetMessage(i); 
    OpenPop.Mime.MessagePart html = message.FindFirstHtmlVersion(); 

    if (html != null) 
    { 
     htmlContained = html.GetBodyAsText(); 
    } 
+1

問題是什麼? (除了非常不整潔的代碼) – musefan

+0

for(int i = count; i> = 0; i--)應該能夠做到這一點。如果你說&& <= 100,那肯定不會超過100的值。 – Sebi

+0

對不起,不讀你只想100.然後我上面的評論是狗屎。如果您只在計數<100時設置i =計數,您可以輕鬆使用它。否則您將我設置爲100. – Sebi

回答

1

這是您的評論

//的for(int i =計數; I> = 0 & &我< = 100;我 - )/// < ---它的工作原理但如果我有超過100個電子郵件不工作。

現在讓我來幫你解釋你自己的代碼。 i =計數包含的值

該循環將運行,而 i大於或等於0且小於或等於硬編碼的100; 我會在每個循環週期中降低1。

現在,這100個部分。在這裏你限制自己看不到100多。如果你刪除它,你不會限制自己只看到低於100的結果。

所以只寫

for (int i = count; i >=0; i--)

,如果你需要的100只限制使用舊的查詢。

,如果你需要它以相反的順序只是否定像

for (int i = 0; i < count; i++)

與100極限相同的表達:

int limit = 100; for (int i = 0; i < limit; i++)

此外,如果你需要一個特定的順序只是使用linq查詢表達式。

因爲我不知道你的代碼,所以你可以調整它,或者使用google和msdn來調整它以滿足你的需要。

var newEmailList = emails.OrderBy(email.whateverYouNeed).Take(100)var newEmailListDesc = emails.OrderByDescending(email.whateverYouNeed).Take(100)

然後你就可以使用foreach快速處理你的任務。

+0

非常感謝你 – Ops

1

這個怎麼樣?

for (int i = count; i > count - 100 && i >= 0; i--) 
+0

即使這回答了問題,請嘗試解釋您的解決方案。複製粘貼答案往往沒有那麼有用,或者隨着時間的推移而變得過時。 –

+0

作品感謝:) – Ops