這可能是一個簡單的修復,但我不能爲我的生活考慮如何做到這一點。我計算了一堆StartDates和結束日期的成一束使用此查詢日期的數組:當計算日期範圍時拋出System.OutOfMemoryException
this.Reserved = unit.Reservations.Where(r => r.Active.HasValue && r.Active.Value).SelectMany(r => Utilities.DateRangeToArray(r.StartDate, r.EndDate)).ToArray();
Utilities.DateRangeToArray()的定義如下:
public static IEnumerable<DateTime> DateRangeToArray(DateTime start, DateTime end) {
DateTime curDate = start;
while (curDate <= end) {
yield return curDate;
curDate.AddDays(1);
}
}
有沒有一種方法,使這少了內存密集?
謝謝!
這太容易錯過了...帶來不可變的類/聲明的副作用自由方法,其中這可能會產生警告,說明語句沒有效果。 – mancaus 2010-09-22 08:59:36
有趣的是,我發佈後,我發現它。但當然每個人都已經回答了。 – 2010-09-22 09:00:17
還有一個人前段時間曾經在博客上介紹過泛型範圍:http://msmvps.com/blogs/jon_skeet/archive/2008/01/26/immutability-and-inheritance.aspx。 – Groo 2010-09-22 09:02:37