Enhanced C#
Language of your choice: library documentation
|
Adapter: This class wraps an IEnumerator{T} or IEnumerable{T} into an IListSource{T}, lazily reading the sequence as TryGet is called. More...
Adapter: This class wraps an IEnumerator{T} or IEnumerable{T} into an IListSource{T}, lazily reading the sequence as TryGet is called.
Avoid calling Count if you actually want laziness; this property must read and buffer the entire sequence.
Properties | |
override int | Count [get] |
Properties inherited from Loyc.Collections.Impl.ListSourceBase< T > | |
abstract override int | Count [get] |
bool | IsEmpty [get] |
T | this[int index] [get] |
Properties inherited from Loyc.Collections.Impl.ReadOnlyCollectionBase< T > | |
abstract int | Count [get] |
Properties inherited from Loyc.Collections.IIsEmpty | |
bool | IsEmpty [get] |
Public Member Functions | |
BufferedSequence (IEnumerable< T > e) | |
BufferedSequence (IEnumerator< T > e) | |
override IEnumerator< T > | GetEnumerator () |
override T | TryGet (int index, out bool fail) |
Gets the item at the specified index, and does not throw an exception on failure. More... | |
Public Member Functions inherited from Loyc.Collections.Impl.ListSourceBase< T > | |
int | IndexOf (T item) |
Slice_< T > | Slice (int start, int count) |
Returns a sub-range of this list. More... | |
override IEnumerator< T > | GetEnumerator () |
Public Member Functions inherited from Loyc.Collections.Impl.ReadOnlyCollectionBase< T > | |
bool | Contains (T item) |
Additional Inherited Members | |
Protected Member Functions inherited from Loyc.Collections.Impl.ListSourceBase< T > | |
int | ThrowIndexOutOfRange (int index) |
|
inlinevirtual |
Gets the item at the specified index, and does not throw an exception on failure.
index | An index in the range 0 to Count-1. |
fail | A flag that is set on failure. |
In my original design, the caller could provide a value to return on failure, but this would not allow T to be marked as "out" in C# 4. For the same reason, we cannot have a ref/out T parameter. Instead, the following extension methods are provided:
Implements Loyc.Collections.Impl.ListSourceBase< T >.