private static IEnumerable <T> GetErrors <T>(ElmahCore.ErrorLog log, int pageSize, Func <int, ErrorLogEntry, T> resultor) { Debug.Assert(log != null); Debug.Assert(pageSize > 0); Debug.Assert(resultor != null); var entries = new List <ErrorLogEntry>(pageSize); for (var pageIndex = 0; ; pageIndex++) { log.GetErrors(pageIndex, pageSize, entries); if (!entries.Any()) { break; } foreach (var entry in entries) { yield return(resultor(pageIndex, entry)); } entries.Clear(); } }