public IEnumerator <T> GetEnumerator() { var lmt = tq.Limit; if (lmt != null) { for (var i = 0; i < lmt.Value; i++) { var el = tq.ElementAtOrDefault(i); if (el != null) { yield return(el); } else { break; } } } else { var el = tq.FirstOrDefault(); int i = 1; while (el != null) { yield return(el); el = tq.ElementAtOrDefault(i++); } } }