Adapter: a reversed of an IList{T}. TODO: unit tests.
|
|
| ReversedList (IList< T > list) |
| |
|
bool | Equals (ReversedList< T > obj) |
| |
| override bool | Equals (object?obj) |
| | Returns true iff the parameter 'obj' is a wrapper around the same object that this object wraps. More...
|
| |
| override int | GetHashCode () |
| | Returns the hashcode of the wrapped object. More...
|
| |
| override string | ToString () |
| | Returns ToString() of the wrapped object. More...
|
| |
|
int | IndexOf (T item) |
| |
|
void | Insert (int index, T item) |
| |
|
void | RemoveAt (int index) |
| |
|
void | Add (T item) |
| |
|
void | Clear () |
| |
| bool | Contains (T item) |
| | Returns true if and only if the collection contains the specified item. More...
|
| |
| void | CopyTo (T[] array, int arrayIndex) |
| | Copies the elements of the collection to an Array, starting at a particular array index. More...
|
| |
|
bool | Remove (T item) |
| |
|
IEnumerator< T > | GetEnumerator () |
| |
System.Collections.IEnumerator
System.Collections.IEnumerable. | GetEnumerator () |
| |
|
void | AddRange (IEnumerable< T > list) |
| |
|
void | AddRange (IReadOnlyCollection< T > list) |
| |
|
bool | TrySet (int index, T value) |
| |
|
T | TryGet (int index, out bool fail) |
| |
| IListSource< T > | Slice (int start, int count=int.MaxValue) |
| | Returns a sub-range of this list. More...
|
| |
|
void | InsertRange (int index, IEnumerable< T > list) |
| |
|
void | InsertRange (int index, IReadOnlyCollection< T > list) |
| |
|
void | RemoveRange (int index, int amount) |
| |
| V | TryGet (K key, out bool fail) |
| | Gets the item for the specified key or index, and does not throw an exception on failure. More...
|
| |
| void Loyc.Collections.ReversedList< T >.CopyTo |
( |
T[] |
array, |
|
|
int |
arrayIndex |
|
) |
| |
|
inline |
Copies the elements of the collection to an Array, starting at a particular array index.
It's usually more convenient to call the ToArray() extension method, which calls this method for you.
This method exists for performance reasons (the collection itself can often copy data out faster than an enumerator can).
- Exceptions
-
| ArgumentNullException | array is null. |
| ArgumentOutOfRangeException | arrayIndex is negative. |
| ArgumentException | The number of elements in the source collection is greater than the available space from arrayIndex to the end of the destination array. |
Implements Loyc.Collections.ICollectionSource< T >.
| IListSource<T> Loyc.Collections.ReversedList< T >.Slice |
( |
int |
start, |
|
|
int |
count = int.MaxValue |
|
) |
| |
|
inline |
Returns a sub-range of this list.
- Parameters
-
| start | The new range will start at this index in the current list (this location will be index [0] in the new range). |
| count | The desired number of elements in the new range, or int.MaxValue to get all elements until the end of the list. |
- Returns
- Returns a sub-range of this range.
- Exceptions
-
| ArgumentException | The start index was below zero. |
The (start, count) range is allowed to be invalid, as long as start is zero or above.
-
If count is below zero, or if start is above the original Count, the Count of the new slice is set to zero.
-
if (start + count) is above the original Count, the Count of the new slice is reduced to
this.Count - start. Implementation note: do not compute (start + count) because it may overflow. Instead, test whether (count > this.Count - start).
Most collections should use the following implementation:
IListSource<T> IListSource<T>.Slice(int start, int count) { return Slice(start, count); }
public Slice_<T> Slice(int start, int count) { return new Slice_<T>(this, start, count); }
Implements Loyc.Collections.IListSource< out T >.