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.ListSourceAsSparse< T > Class Template Reference

Adapter from IListSource{T} to ISparseListSource{T}. More...


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

Remarks

Adapter from IListSource{T} to ISparseListSource{T}.

See also
LCExt.AsSparse{T}(IListSource{T})

Properties

sealed override int Count [get]
 
IEnumerable< KeyValuePair< int,
T > > 
Items [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

 ListSourceAsSparse (Loyc.Collections.IListSource< T > list)
 
sealed override T TryGet (int index, out bool fail)
 Gets the item at the specified index, and does not throw an exception on failure. More...
 
bool IsSet (int index)
 Determines whether a value exists at the specified index. More...
 
new System.Collections.IEnumerator GetEnumerator ()
 
NextHigherItem (ref int?index)
 Increases index by at least one to reach the next index that is not classified as empty space, and returns the item at that index. More...
 
NextLowerItem (ref int?index)
 Decreases index by at least one to reach the next index that is not classified as empty space, and returns the item at that index. 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

bool Loyc.Collections.ListSourceAsSparse< T >.IsSet ( int  index)
inline

Determines whether a value exists at the specified index.

Parameters
index
Returns
true if a value is assigned at the specified index, or false if index is part of an empty space, or is outside the range of indexes that exist.

Implements Loyc.Collections.ISparseListSource< T >.

T Loyc.Collections.ListSourceAsSparse< T >.NextHigherItem ( ref int?  index)
inline

Increases index by at least one to reach the next index that is not classified as empty space, and returns the item at that index.

Parameters
indexThis parameter is increased by at least one, and perhaps more than one so that it refers to an index where there is a value. If index is null upon entering this method, the first non-empty space in the list is found. If there are no values at higher indexes, if the list is empty or if index + 1 >= Count, index is null when the method returns.

This method must skip over all indexes i for which IsSet(i) returns false, and return the next index for which IsSet(i) returns true. This method must accept any integer as input, including invalid indexes.

Implements Loyc.Collections.ISparseListSource< T >.

T Loyc.Collections.ListSourceAsSparse< T >.NextLowerItem ( ref int?  index)
inline

Decreases index by at least one to reach the next index that is not classified as empty space, and returns the item at that index.

Parameters
indexThis parameter is increased by at least one, and perhaps more than one so that it refers to an index where there is a value. If index is null upon entering this method, the last non-empty space in the list is found. If there are no values at lower indexes, if the list is empty or if index is 0 or less, index is null when the method returns.

This method must skip over all indexes i for which IsSet(i) returns false, and return the next index for which IsSet(i) returns true. This method must accept any integer as input, including invalid indexes.

Implements Loyc.Collections.ISparseListSource< T >.

sealed override T Loyc.Collections.ListSourceAsSparse< 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 >.