Enhanced C#
Language of your choice: library documentation
|
Adapter: provides a view of an IListSource<T> in which the Count is the same, but the minimum index is not necessarily zero. Returned from LCExt.AsNegList<T>(IListSource<T>,int). More...
Adapter: provides a view of an IListSource<T> in which the Count is the same, but the minimum index is not necessarily zero. Returned from LCExt.AsNegList<T>(IListSource<T>,int).
This wrapper is a structure in order to offer high performance in certain scenarios.
Like ListSourceSlice, this structure provides a view of another list starting at a certain offset. Unlike ListSourceSlice, however, this structure allows the caller to access the entire original list, not just a slice.
Public static fields | |
static readonly NegListSource< T > | Empty = new NegListSource<T>(EmptyList<T>.Value, 0) |
Properties | |
IListSource< T > | OriginalList [get] |
Gets the list that was passed to the constructor of this instance. More... | |
int | Offset [get, set] |
Returns the offset added to indexes in the original list, which equals -Min. More... | |
int | Count [get] |
Returns the total number of items in the list (same as OriginalList.Count). More... | |
int | Min [get] |
Returns the minimum valid index. More... | |
int | Max [get] |
Returns the maximum valid index, which is Min + OriginalList.Count - 1. More... | |
T | this[int index] [get] |
Gets the value of the list at the specified index. In terms of the original list, this is OriginalList[index + Offset] More... | |
Properties inherited from Loyc.Collections.INegListSource< T > | |
int | Min [get] |
Returns the minimum valid index in the collection. More... | |
int | Max [get] |
Returns the maximum valid index in the collection. More... | |
Public Member Functions | |
NegListSource (IListSource< T > list, int zeroOffset) | |
Initializes a NegListSource wrapper. More... | |
T | TryGet (int index, out bool fail) |
IRange< T > | Slice (int start, int count=int.MaxValue) |
Returns a sub-range of this list. More... | |
IEnumerator< T > | GetEnumerator () |
System.Collections.IEnumerator System.Collections.IEnumerable. | GetEnumerator () |
bool | Equals (NegListSource< T > rhs) |
override bool | Equals (object obj) |
override int | GetHashCode () |
override string | ToString () |
Returns ToString() of the wrapped list. More... | |
Public Member Functions inherited from Loyc.Collections.INegListSource< T > | |
IRange< T > | Slice (int start, int count=int.MaxValue) |
Returns a sub-range of this list. More... | |
Static Public Member Functions | |
static bool | operator== (NegListSource< T > a, NegListSource< T > b) |
static bool | operator!= (NegListSource< T > a, NegListSource< T > b) |
|
inline |
Initializes a NegListSource wrapper.
list | A list to wrap (must not be null). |
zeroOffset | An index into the original list. this[0] will refer to that index. |
The zeroOffset can be any integer, but if it is not in the range 0 to list.Count-1, this[0] will not be valid. For example, if zeroOffset==-1, this object will have Min==1 and Max==Count.
|
inline |
Returns a sub-range of this list.
References Loyc.Collections.IListSource< out out T >.Slice().
|
inline |
Returns ToString() of the wrapped list.
|
get |
Returns the total number of items in the list (same as OriginalList.Count).
|
get |
Returns the maximum valid index, which is Min + OriginalList.Count - 1.
|
get |
Returns the minimum valid index.
|
getset |
Returns the offset added to indexes in the original list, which equals -Min.
The 0th item in this list the same as OriginalList[Offset].
WARNING: this is a value type. Calling the setter may have unexpected consequences for people unfamiliar with the .NET type system, because it is easy to make copies accidentally, and changing the Offset in a copy does not change the Offset in the original.
|
get |
Gets the list that was passed to the constructor of this instance.
|
get |
Gets the value of the list at the specified index. In terms of the original list, this is OriginalList[index + Offset]
index | An index in the range Min to Max. |
ArgumentOutOfRangeException | The index provided is not valid in this list. |