public void Dispose() { if (!this.disposed) { this.enumerable = default(TEnumerable); this.disposed = true; this.next = ODBGenericEnumerable <T, TEnumerator, TEnumerable> .recycle; ODBGenericEnumerable <T, TEnumerator, TEnumerable> .recycle = this; } }
public static ODBGenericEnumerable <T, TEnumerator, TEnumerable> Open(ref TEnumerable enumerable) { if (ODBGenericEnumerable <T, TEnumerator, TEnumerable> .recycle == null) { return(new ODBGenericEnumerable <T, TEnumerator, TEnumerable>(ref enumerable)); } ODBGenericEnumerable <T, TEnumerator, TEnumerable> ts = ODBGenericEnumerable <T, TEnumerator, TEnumerable> .recycle; ts.disposed = false; ODBGenericEnumerable <T, TEnumerator, TEnumerable> .recycle = ts.next; ts.enumerable = enumerable; return(ts); }
public static IEnumerable <T> Open <TEnumerator, TEnumerable>(ref TEnumerable enumerable) where TEnumerator : struct, ODBEnumerator <T> where TEnumerable : struct, ODBEnumerable <T, TEnumerator> { return(ODBGenericEnumerable <T, TEnumerator, TEnumerable> .Open(ref enumerable)); }
public unsafe IEnumerable <T> ToGeneric() { ODBForwardEnumerable <T> enumerable = *((ODBForwardEnumerable <T> *) this); return(ODBGenericEnumerable <T, ODBForwardEnumerator <T>, ODBForwardEnumerable <T> > .Open(ref enumerable)); }
public IEnumerable <T> ToGeneric() { ODBForwardEnumerable <T> ts = this; return(ODBGenericEnumerable <T, ODBForwardEnumerator <T>, ODBForwardEnumerable <T> > .Open(ref ts)); }