Shared base class of FWList and WList.
- Template Parameters
-
| T | The type of elements in the list |
|
|
new void | Add (T item) |
| |
|
new void | Clear () |
| |
|
new void | Insert (int index, T item) |
| |
|
new void | RemoveAt (int index) |
| |
|
new int | IndexOf (T item) |
| |
| new bool | Contains (T item) |
| | Returns true if and only if the collection contains the specified item. More...
|
| |
| new void | CopyTo (T[] array, int arrayIndex) |
| | Copies the elements of the collection to an Array, starting at a particular array index. More...
|
| |
|
new bool | Remove (T item) |
| |
|
IEnumerator< T > | GetEnumerator () |
| |
|
T | TryGet (int index, out bool fail) |
| |
| Slice_< T > | Slice (int start, int count) |
| | Returns a sub-range of this list. More...
|
| |
| void | Push (T item) |
| | Synonym for Add(); adds an item to the front of the list. More...
|
| |
|
new FVList< T > | ToFVList () |
| |
|
new VList< T > | ToVList () |
| |
| 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...
|
| |
|
| virtual int | AdjustWListIndex (int index, int size) |
| | This method implements the difference between FWList and WList: In FWList it returns index, but in WList it returns Count-size-index. More...
|
| |
|
| WListProtected (WListProtected< T > original, bool takeOwnership) |
| |
| T | GetAt (int index) |
| | Gets an item from a FWList or WList at the specified index. More...
|
| |
| void | SetAt (int index, T value) |
| | Sets an item in a FWList or WList at the specified index. More...
|
| |
| void | Add (T item) |
| | Inserts an item at the "front" of the list, which is index 0 for FWList, or Count for WList. More...
|
| |
|
void | Insert (int index, T item) |
| |
|
void | RemoveAt (int index) |
| |
| int | IndexOf (T item) |
| | Searches for the specified object and returns the zero-based index of the first occurrence (lowest index) within the entire FVList. More...
|
| |
|
bool | Contains (T item) |
| |
|
void | CopyTo (T[] array, int arrayIndex) |
| |
|
bool | Remove (T item) |
| |
|
virtual IEnumerator< T > | GetIEnumerator () |
| |
|
FVList< T >.Enumerator | GetVListEnumerator () |
| |
|
VList< T >.Enumerator | GetRVListEnumerator () |
| |
|
void | RemoveAtDff (int distanceFromFront) |
| |
|
void | RemoveRangeBase (int distanceFromFront, int count) |
| |
|
void | InsertRangeAtDff (int distanceFromFront, IReadOnlyList< T > items, bool isRWList) |
| |
|
void | InsertAtDff (int distanceFromFront, T item) |
| |
| T | GetAtDff (int distanceFromFront) |
| | Gets an item WITHOUT doing a range check More...
|
| |
| void | SetAtDff (int distanceFromFront, T item) |
| | Sets an item WITHOUT doing a range or mutability check More...
|
| |
| FVList< T > | ToFVList () |
| | Returns this list as a FVList; if this is a WList, the order of the elements is reversed at the same time. More...
|
| |
| VList< T > | ToVList () |
| | Returns this list as a VList; if this is a FWList, the order of the elements is reversed at the same time. More...
|
| |
| new void Loyc.Collections.WListBase< 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 >.
| Slice_<T> Loyc.Collections.WListBase< T >.Slice |
( |
int |
start, |
|
|
int |
count |
|
) |
| |
|
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 >.