|
using System.Collections;
using System.Collections.Generic;
namespace Raven.Database.Indexing
{
public class StatefulEnumerableWrapper<T> : IEnumerable<T>
{
private readonly IEnumerator<T> inner;
public StatefulEnumerableWrapper(IEnumerator<T> inner)
{
this.inner = inner;
}
public T Current
{
get { return inner.Current; }
}
#region IEnumerable<T> Members
public IEnumerator<T> GetEnumerator()
{
return new StatefulbEnumeratorWrapper(inner);
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
#endregion
#region Nested type: StatefulbEnumeratorWrapper
public class StatefulbEnumeratorWrapper : IEnumerator<T>
{
private readonly IEnumerator<T> inner;
public StatefulbEnumeratorWrapper(IEnumerator<T> inner)
{
this.inner = inner;
}
#region IEnumerator<T> Members
public void Dispose()
{
inner.Dispose();
}
public bool MoveNext()
{
return inner.MoveNext();
}
public void Reset()
{
inner.Reset();
}
public T Current
{
get { return inner.Current; }
}
object IEnumerator.Current
{
get { return Current; }
}
#endregion
}
#endregion
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I've been a software developer since 1996 and have enjoyed C# since 2003. I have a Bachelor's degree in Computer Science and for some reason, a Master's degree in Business Administration. I currently do software development contracting/consulting.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.