[英]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.