public override IEnumerator <LogBase> GetEnumerator() { if (CachingService == null) { return(base.GetEnumerator()); } return(CachingService .Select(i => i.Value) .Where(i => i.ExpireTime >= DateTime.UtcNow) .Select(i => i.UntypedValue as LogBase) .Where(i => !OnlySerializeLogsOfTheCorrectType || i != null) .GetEnumerator()); }