Enhanced C#
Language of your choice: library documentation
Properties | Public Member Functions | Static Public Member Functions | List of all members
Loyc.Collections.WListBase< T > Class Template Reference

Shared base class of FWList and WList. More...


Source file:
Inheritance diagram for Loyc.Collections.WListBase< T >:
Loyc.Collections.WListProtected< T > Loyc.Collections.IListAndListSource< T > Loyc.Collections.IListAndReadOnly< T > Loyc.Collections.IListSource< T > Loyc.Collections.ICollectionAndSource< T > Loyc.Collections.ICollectionAndReadOnly< T > Loyc.Collections.ICollectionSource< T > Loyc.Collections.ICollectionAndReadOnly< T > Loyc.Collections.IContains< T > Loyc.Collections.FWList< T > Loyc.Collections.WList< T >

Remarks

Shared base class of FWList and WList.

Template Parameters
TThe type of elements in the list

Properties

this[int index] [get, set]
 
new int Count [get]
 
bool IsReadOnly [get]
 
new int BlockChainLength [get]
 
- Properties inherited from Loyc.Collections.WListProtected< T >
byte UserByte [get, set]
 An additional byte that the derived class can optionally use. More...
 
int? BlockChainLength [get]
 Gets the number of blocks used by this list. More...
 

Public Member Functions

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)
 
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 ()
 
TryGet (int index, out bool fail)
 
Slice_< T > Slice (int start, int count)
 
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 ()
 
- Public Member Functions inherited from Loyc.Collections.IListSource< T >
IRange< T > Slice (int start, int count=int.MaxValue)
 Returns a sub-range of this list. More...
 
- Public Member Functions inherited from Loyc.Collections.IContains< T >
bool Contains (T item)
 Returns true if and only if the collection contains the specified item. More...
 

Static Public Member Functions

static operator FVList< T > (WListBase< T > list)
 Returns this list as a FVList; if this is a WList, the order of the elements is reversed at the same time. More...
 
static operator VList< T > (WListBase< T > list)
 Returns this list as a VList; if this is a FWList, the order of the elements is reversed at the same time. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Loyc.Collections.WListProtected< T >
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)
 
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)
 
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...
 

Member Function Documentation

◆ CopyTo()

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
ArgumentNullExceptionarray is null.
ArgumentOutOfRangeExceptionarrayIndex is negative.
ArgumentExceptionThe 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 >.

◆ operator FVList< T >()

static Loyc.Collections.WListBase< T >.operator FVList< T > ( WListBase< T >  list)
inlineexplicitstatic

Returns this list as a FVList; if this is a WList, the order of the elements is reversed at the same time.

This operation marks the items of the FWList or WList as immutable. You can still modify the list afterward, but some or all of the list may have to be copied.

◆ operator VList< T >()

static Loyc.Collections.WListBase< T >.operator VList< T > ( WListBase< T >  list)
inlineexplicitstatic

Returns this list as a VList; if this is a FWList, the order of the elements is reversed at the same time.

This operation marks the items of the FWList or WList as immutable. You can still modify the list afterward, but some or all of the list may have to be copied.

◆ Push()

void Loyc.Collections.WListBase< T >.Push ( item)
inline

Synonym for Add(); adds an item to the front of the list.