Table of Contents

Class FastCollection<T>

Namespace
Stride.Core.Collections
Assembly
Stride.Core.dll

Faster and lighter implementation of Collection<T> with value types enumerators to avoid allocation in foreach loops, and various helper functions.

[DataSerializer(typeof(ListAllSerializer<,>), Mode = DataSerializerGenericMode.TypeAndGenericArguments)]
public class FastCollection<T> : IList<T>, ICollection<T>, IReadOnlyList<T>, IReadOnlyCollection<T>, IEnumerable<T>, IEnumerable

Type Parameters

T

Type of elements of this collection

Inheritance
FastCollection<T>
Implements
Derived
Extension Methods

Constructors

FastCollection()

public FastCollection()

FastCollection(IEnumerable<T>)

public FastCollection(IEnumerable<T> collection)

Parameters

collection IEnumerable<T>

FastCollection(int)

public FastCollection(int capacity)

Parameters

capacity int

Properties

Capacity

public int Capacity { get; set; }

Property Value

int

Count

Gets the number of elements contained in the ICollection<T>.

public int Count { get; }

Property Value

int

The number of elements contained in the ICollection<T>.

this[int]

Gets or sets the element T at the specified index.

public T this[int index] { get; set; }

Parameters

index int

The index.

Property Value

T

The element T.

Exceptions

ArgumentOutOfRangeException

If index is out of range

Methods

Add(T)

Adds an item to the ICollection<T>.

public void Add(T item)

Parameters

item T

The object to add to the ICollection<T>.

Exceptions

NotSupportedException

The ICollection<T> is read-only.

AddRange<TE>(TE)

Adds the elements of the specified source to the end of FastCollection<T>.

public void AddRange<TE>(TE itemsArgs) where TE : IEnumerable<T>

Parameters

itemsArgs TE

The items to add to this collection.

Type Parameters

TE

Clear()

Removes all items from the ICollection<T>.

public void Clear()

Exceptions

NotSupportedException

The ICollection<T> is read-only.

ClearItems()

protected virtual void ClearItems()

Contains(T)

Determines whether the ICollection<T> contains a specific value.

public bool Contains(T item)

Parameters

item T

The object to locate in the ICollection<T>.

Returns

bool

true if item is found in the ICollection<T>; otherwise, false.

CopyTo(T[], int)

Copies the elements of the ICollection<T> to an Array, starting at a particular Array index.

public void CopyTo(T[] array, int arrayIndex)

Parameters

array T[]

The one-dimensional Array that is the destination of the elements copied from ICollection<T>. The Array must have zero-based indexing.

arrayIndex int

The zero-based index in array at which copying begins.

Exceptions

ArgumentNullException

array is null.

ArgumentOutOfRangeException

arrayIndex is less than 0.

ArgumentException

The number of elements in the source ICollection<T> is greater than the available space from arrayIndex to the end of the destination array.

EnsureCapacity(int)

public void EnsureCapacity(int min)

Parameters

min int

GetEnumerator()

Inline Enumerator used directly by foreach.

public FastCollection<T>.Enumerator GetEnumerator()

Returns

FastCollection<T>.Enumerator

An enumerator of this collection

IndexOf(T)

Determines the index of a specific item in the IList<T>.

public int IndexOf(T item)

Parameters

item T

The object to locate in the IList<T>.

Returns

int

The index of item if found in the list; otherwise, -1.

Insert(int, T)

Inserts an item to the IList<T> at the specified index.

public void Insert(int index, T item)

Parameters

index int

The zero-based index at which item should be inserted.

item T

The object to insert into the IList<T>.

Exceptions

ArgumentOutOfRangeException

index is not a valid index in the IList<T>.

NotSupportedException

The IList<T> is read-only.

InsertItem(int, T)

protected virtual void InsertItem(int index, T item)

Parameters

index int
item T

Remove(T)

Removes the first occurrence of a specific object from the ICollection<T>.

public bool Remove(T item)

Parameters

item T

The object to remove from the ICollection<T>.

Returns

bool

true if item was successfully removed from the ICollection<T>; otherwise, false. This method also returns false if item is not found in the original ICollection<T>.

Exceptions

NotSupportedException

The ICollection<T> is read-only.

RemoveAt(int)

Removes the IList<T> item at the specified index.

public void RemoveAt(int index)

Parameters

index int

The zero-based index of the item to remove.

Exceptions

ArgumentOutOfRangeException

index is not a valid index in the IList<T>.

NotSupportedException

The IList<T> is read-only.

RemoveItem(int)

protected virtual void RemoveItem(int index)

Parameters

index int

SetItem(int, T)

protected virtual void SetItem(int index, T item)

Parameters

index int
item T

Sort()

public void Sort()

Sort(IComparer<T>)

public void Sort(IComparer<T> comparer)

Parameters

comparer IComparer<T>

Sort(int, int, IComparer<T>)

public void Sort(int index, int count, IComparer<T> comparer)

Parameters

index int
count int
comparer IComparer<T>