Enhanced C#
Language of your choice: library documentation

Documentation moved to ecsharp.net

GitHub doesn't support HTTP redirects, so you'll be redirected in 3 seconds.

 All Classes Namespaces Functions Variables Enumerations Enumerator Properties Events Pages
Properties | Public Member Functions | List of all members
Loyc.Collections.BufferedSequence< T > Class Template Reference

Adapter: This class wraps an IEnumerator{T} or IEnumerable{T} into an IListSource{T}, lazily reading the sequence as TryGet is called. More...


Source file:
Inheritance diagram for Loyc.Collections.BufferedSequence< T >:
Loyc.Collections.Impl.ListSourceBase< T > Loyc.Collections.Impl.ReadOnlyCollectionBase< T > Loyc.Collections.IListAndListSource< T > Loyc.Collections.IIsEmpty Loyc.Collections.ICollectionAndReadOnly< T > Loyc.Collections.IListSource< out T > Loyc.Collections.ICollectionAndReadOnly< T >

Remarks

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]
 
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)
 

Member Function Documentation

override T Loyc.Collections.BufferedSequence< T >.TryGet ( int  index,
out bool  fail 
)
inlinevirtual

Gets the item at the specified index, and does not throw an exception on failure.

Parameters
indexAn index in the range 0 to Count-1.
failA flag that is set on failure.
Returns
The element at the specified index, or default(T) if the index is not valid.

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:

bool TryGet(int index, ref T value);
T TryGet(int, T defaultValue);

Implements Loyc.Collections.Impl.ListSourceBase< T >.