簡體   English   中英

如何避免多次運行同一循環?

[英]How to avoid running the same loop multiple times?

這對我來說是個大問題,因為我無法擺脫困境。 我僅進入listDataReport.Count 。但是在從beginDate (例如:10/01/2010)到endDate (今天)的foreach ,我的文件寫入的時間是從開始到結束。

我想要的只是listDataReport特定日期的一次寫入

listDataReport = blReports.GetDataClientes(beginDate, endDate);

string dateSelected = string.Empty;    
while (beginDate < endDate)
{
    foreach (var item in listDataReport)
    {
        FileCreated.WriteLog(item.NmbrCliLeg + "|" + item.NmbCliProf + "|" + item.Namsur + "|" + item.Mail, false);
        dateSelected= item.DateUp;
    }
    beginDate = beginDate.AddDays(1);
}
log.WriteLog("Clients up date: " + dateSelected + ":" + listDataReport.Count);    

beginDate - endDate之間重復許多天。 如果我只在listDataReport上獲得一個Client,則會發生這種情況。

如您所見,這里有FileCreated.WriteLog創建一個.txt文件,它將數據客戶端寫入其中,這就是問題所在。 在創建.log文件的log.WriteLog ,這沒有問題。 我將展示兩個文件的內容。

在日志中:

---***--- Execution Initiated: 27/03/2015 09:44:40 a.m.
27/03/2015 09:44:50 a.m. - Clients up date 03/19/2015: 1
===***=== Execution Ended: 03/27/2015 09:44:50 a.m.

但是現在在.txt文件(Datefile03272015.txt)中:

0123456789|7976967|NAME SURNAME|somemail@mail.com
0123456789|7976967|NAME SURNAME|somemail@mail.com
0123456789|7976967|NAME SURNAME|somemail@mail.com
0123456789|7976967|NAME SURNAME|somemail@mail.com

所有作業每天運行,並每天創建一個.txt文件。 此處的.log文件無關緊要。

使用關鍵字break可以打破循環:

https://msdn.microsoft.com/zh-CN/library/ttw7t8t6.aspx

int[] list = [1, 2, 3, 4, 5, 6, 7, 8];

foreach(int item in list)
{
    Console.WriteLine(item);
    if (item == 5)
        break;
}

輸出:

1
2
3
4
5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM