protected virtual void Dispose(bool disposing)
 {
     if (!_disposedValue)
     {
         if (disposing)
         {
             BaseEnumerator.Dispose();
         }
         _disposedValue = true;
     }
 }
示例#2
0
            public void Dispose()
            {
                if (BaseEnumerator != null)
                {
                    BaseEnumerator.Dispose();
                    BaseEnumerator = null;
                }

                if (SparseMemorySpan.IsEmpty == false)
                {
                    List.DeallocateItems(SparseMemorySpan);
                    SparseMemorySpan = SparseMemorySpan <T> .Empty;
                }

                List = null;
            }
示例#3
0
            public bool MoveNext()
            {
                if (BaseEnumerator != null)
                {
                    var next = BaseEnumerator.MoveNext();

                    if (next)
                    {
                        Current = BaseEnumerator.Current;

                        return(true);
                    }

                    BaseEnumerator.Dispose();
                    BaseEnumerator = null;

                    if (SparseMemorySpan.IsEmpty)
                    {
                        return(false);
                    }

                    Current = SparseMemorySpan.Span[0];

                    return(true);
                }

                if (CurrentItemIndex < ItemsCount - 1)
                {
                    CurrentItemIndex++;

                    Current = SparseMemorySpan.Span[CurrentItemIndex];

                    return(true);
                }

                Current = default;

                return(false);
            }
示例#4
0
 void IDisposable.Dispose()
 {
     BaseEnumerator.Dispose();
 }
示例#5
0
 public void Dispose()
 {
     BaseEnumerator.Dispose();
 }