我周圍環繞僱員&每個員工循環爲所有日期一個月。過濾大集合
我已經從Db預裝了一個列表ShiftDetails
以改善性能。
foreach (var item in lstEmp)
{
while (fDate <= ToDate)
{
var employeeShifts = ShiftDetails
.Where(a => a.EmployeeId == item.Id && a.ShiftDate == fDate)
.Select(a => a)
.FirstOrDefault();
}
}
當我用Profiler檢查性能時,上面的代碼行正在吃掉很大的時間。
有什麼辦法可以提高我的代碼的性能嗎?
我已經搜索&發現字典是最好的解決這個,但他們應該有唯一的鍵,在我的情況下,我沒有列表中的任何獨特的列。
您可以使用[Parallel.Foreach](https://msdn.microsoft.com/en-us/library/dd460720(v = vs.110).aspx)方法加速嗎? – ckruczek
你多久增加'fDate'變量?它是'DateTime'對象還是一些時間戳?迭代每毫秒可能比LINQ到3000個對象更痛苦 – hmnzr
它是DateTime對象,對於每個員工迭代一個月,例如, 1April-30APril。 – Anup