Adapter: provides a view of an IList{T} in which the Count is the same, but the minimum index is not necessarily zero. Returned from LCExt.NegView{T}(IList{T},int).
More...
Adapter: provides a view of an IList{T} in which the Count is the same, but the minimum index is not necessarily zero. Returned from LCExt.NegView{T}(IList{T},int).
This wrapper is a structure in order to offer high performance in certain scenarios.
|
IList< 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, set] |
| Gets the value of the list at the specified index. In terms of the original list, this is OriginalList[index + Offset] More...
|
|
new T | this[int index] [get, set] |
| Gets or sets an element of the array-like collection. More...
|
|
int | Min [get] |
| Returns the minimum valid index in the collection. More...
|
|
int | Max [get] |
| Returns the maximum valid index in the collection. More...
|
|
T | this[int index] [get] |
| Gets the item at the specified index. More...
|
|
|
| NegList (IList< T > list, int zeroOffset) |
| Initializes a NegListSource wrapper. More...
|
|
T | TryGet (int index, out bool fail) |
| Gets the item at the specified index, and does not throw an exception on failure.- Parameters
-
index | An index in the range Min to Max. |
fail | A flag that is set on failure. To improve performance slightly, this flag is not cleared on success. |
- 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);
|
|
bool | TrySet (int index, T value) |
|
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 (NegList< T > rhs) |
|
override bool | Equals (object obj) |
|
override int | GetHashCode () |
|
override string | ToString () |
| Returns ToString() of the wrapped list. More...
|
|
int Loyc.Collections.NegList< T >.Offset |
|
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.