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));
 }
Esempio n. 4
0
    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));
    }