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

A compact auto-enlarging list that efficiently supports supports insertions at the beginning or end of the list. More...

Source file:
Inheritance diagram for Loyc.Collections.DList< T >:
Loyc.Collections.IListEx< T > Loyc.Collections.IDeque< T > Loyc.Collections.IListRangeMethods< T > Loyc.Collections.IListAndListSource< T > Loyc.Collections.ICollectionEx< T > Loyc.Collections.IArray< T > Loyc.Collections.IListRangeMethods< T > Loyc.Collections.IIsEmpty Loyc.Collections.ICount Loyc.Collections.IIsEmpty Loyc.Collections.IArraySink< T > Loyc.Collections.IListSource< T > Loyc.Collections.IIsEmpty Loyc.Collections.IAddRange< T > Loyc.Collections.ICollectionImpl< T > Loyc.Collections.ICollectionAndSource< T > Loyc.Collections.IListSource< T > Loyc.Collections.IListAndReadOnly< T >


A compact auto-enlarging list that efficiently supports supports insertions at the beginning or end of the list.

This class is the same as DList{object} except that it also implements the IList interface.

An article about this class is available.

See also
InternalDList<T>, DList


int Capacity [get, set]
this[int index] [get, set]
this[int index, T defaultValue] [get]
int Count [get]
bool IsReadOnly [get]
First [get, set]
Last [get, set]
bool IsEmpty [get]
bool IsFixedSize [get]
bool IsSynchronized [get]
object SyncRoot [get]
- Properties inherited from Loyc.Collections.IListEx< T >
new int Count [get]
- Properties inherited from Loyc.Collections.IIsEmpty
bool IsEmpty [get]
- Properties inherited from Loyc.Collections.IArray< T >
new T this[int index] [get, set]
 Gets or sets an element of the array-like collection. More...
- Properties inherited from Loyc.Collections.IArraySink< T >
this[int index] [set]
- Properties inherited from Loyc.Collections.IDeque< T >
First [get, set]
 Gets the first item in the deque. More...
Last [get, set]
- Properties inherited from Loyc.Collections.ICount
int Count [get]
 Gets the number of items in the collection. More...

Public Member Functions

 DList (int capacity)
 DList (IReadOnlyCollection< T > items)
 DList (ICollection< T > items)
 DList (ICollectionAndReadOnly< T > items)
 DList (IEnumerable< T > items)
 DList (T[] items)
int IndexOf (T item)
void PushLast (ICollection< T > items)
void PushLast (IEnumerable< T > items)
void PushLast (IReadOnlyCollection< T > items)
void PushLast (ICollectionAndReadOnly< T > items)
void PushLast (T item)
void PushFirst (T item)
void PopLast (int amount)
void PopFirst (int amount)
void Insert (int index, T item)
void InsertRange (int index, ICollection< T > items)
void InsertRange (int index, IReadOnlyCollection< T > items)
void InsertRange (int index, ICollectionAndReadOnly< T > items)
void InsertRange (int index, IEnumerable< T > e)
void AddRange (ICollectionAndReadOnly< T > c)
void AddRange (ICollection< T > c)
void AddRange (IReadOnlyCollection< T > s)
void AddRange (IEnumerable< T > e)
void RemoveAt (int index)
void RemoveRange (int index, int amount)
bool TrySet (int index, T value)
TryGet (int index, out bool fail)
void Add (T item)
 An alias for PushLast(). More...
void Clear ()
bool Contains (T item)
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)
InternalDList< T >.Enumerator GetEnumerator ()
Maybe< T > TryPopFirst ()
Maybe< T > TryPeekFirst ()
Maybe< T > TryPopLast ()
Maybe< T > TryPeekLast ()
int BinarySearch (T k, Comparer< T > comp)
int BinarySearch< K > (K k, Func< T, K, int > comp)
void Resize (int newSize)
DList< T > Clone ()
void CopyTo (int sourceIndex, T[] destination, int destinationIndex, int subcount)
DList< T > CopySection (int start, int subcount)
void Sort (Comparison< T > comp)
void Sort (int index, int count, Comparison< T > comp)
ListSlice< T > Slice (int start, int count)
void CopyTo (Array array, int arrayIndex)
new void Remove (object obj)
new int Add (object obj)
- 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...
- Public Member Functions inherited from Loyc.Collections.ICollectionSink< T >
void Clear ()
bool Remove (T item)
- Public Member Functions inherited from Loyc.Collections.IAddRange< T >
void AddRange (IEnumerable< T > e)
void AddRange (IReadOnlyCollection< T > s)
- Public Member Functions inherited from Loyc.Collections.IListRangeMethods< T >
void InsertRange (int index, IEnumerable< T > s)
void InsertRange (int index, IReadOnlyCollection< T > s)
void RemoveRange (int index, int amount)

Protected fields

InternalDList< T > _dlist = InternalDList<T>.Empty

Member Function Documentation

◆ Add()

void Loyc.Collections.DList< T >.Add ( item)

An alias for PushLast().

Referenced by Loyc.Ecs.Parser.EcsPreprocessor.NextToken().

◆ CopyTo()

void Loyc.Collections.DList< T >.CopyTo ( T[]  array,
int  arrayIndex 

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).

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 >.