Table of Contents

Class FastList<T>

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

Similar to List<T>, with direct access to underlying array.

It is recommended to use Spans instead: https://github.com/stride3d/stride/discussions/2298#discussioncomment-9779439

[DataSerializer(typeof(ListAllSerializer<,>), Mode = DataSerializerGenericMode.TypeAndGenericArguments)]
[Obsolete(".NET Lists can be faster in the latest .NET versions.")]
public class FastList<T> : IList<T>, IReadOnlyList<T>, IReadOnlyCollection<T>, ICollection<T>, IEnumerable<T>, IEnumerable

Type Parameters

T

The type of elements in the list.

Inheritance
FastList<T>
Implements
Derived
Extension Methods

Constructors

FastList()

public FastList()

FastList(IEnumerable<T>)

public FastList(IEnumerable<T> collection)

Parameters

collection IEnumerable<T>

FastList(int)

public FastList(int capacity)

Parameters

capacity int

Properties

Capacity

public int Capacity { get; set; }

Property Value

int

Count

Gets the number of elements in the collection.

public int Count { get; }

Property Value

int

The number of elements in the collection.

this[int]

Gets or sets the element at the specified index.

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

Parameters

index int

The zero-based index of the element to get or set.

Property Value

T

The element at the specified index.

Exceptions

ArgumentOutOfRangeException

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

NotSupportedException

The property is set and the IList<T> is read-only.

Items

Gets the items.

[Obsolete("Its best to use a List<T> instead of FastList<T> and iterate through the list as a Span for peak performance.")]
public T[] Items { get; }

Property Value

T[]

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(IEnumerable<T>)

public void AddRange(IEnumerable<T> collection)

Parameters

collection IEnumerable<T>

AsReadOnly()

public ReadOnlyCollection<T> AsReadOnly()

Returns

ReadOnlyCollection<T>

BinarySearch(int, int, T, IComparer<T>)

public int BinarySearch(int index, int count, T item, IComparer<T> comparer)

Parameters

index int
count int
item T
comparer IComparer<T>

Returns

int

BinarySearch(T)

public int BinarySearch(T item)

Parameters

item T

Returns

int

BinarySearch(T, IComparer<T>)

public int BinarySearch(T item, IComparer<T> comparer)

Parameters

item T
comparer IComparer<T>

Returns

int

Clear()

Removes all items from the ICollection<T>.

public void Clear()

Exceptions

NotSupportedException

The ICollection<T> is read-only.

Clear(bool)

Clears this list with a fast-clear option.

public void Clear(bool fastClear)

Parameters

fastClear bool

if set to true this method only resets the count elements but doesn't clear items referenced already stored in the list.

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(int, T[], int, int)

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

Parameters

index int
array T[]
arrayIndex int
count int

CopyTo(T[])

public void CopyTo(T[] array)

Parameters

array T[]

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

Exists(Predicate<T>)

public bool Exists(Predicate<T> match)

Parameters

match Predicate<T>

Returns

bool

Find(Predicate<T>)

public T Find(Predicate<T> match)

Parameters

match Predicate<T>

Returns

T

FindAll(Predicate<T>)

public FastList<T> FindAll(Predicate<T> match)

Parameters

match Predicate<T>

Returns

FastList<T>

FindIndex(int, int, Predicate<T>)

public int FindIndex(int startIndex, int count, Predicate<T> match)

Parameters

startIndex int
count int
match Predicate<T>

Returns

int

FindIndex(int, Predicate<T>)

public int FindIndex(int startIndex, Predicate<T> match)

Parameters

startIndex int
match Predicate<T>

Returns

int

FindIndex(Predicate<T>)

public int FindIndex(Predicate<T> match)

Parameters

match Predicate<T>

Returns

int

FindLast(Predicate<T>)

public T FindLast(Predicate<T> match)

Parameters

match Predicate<T>

Returns

T

FindLastIndex(int, int, Predicate<T>)

public int FindLastIndex(int startIndex, int count, Predicate<T> match)

Parameters

startIndex int
count int
match Predicate<T>

Returns

int

FindLastIndex(int, Predicate<T>)

public int FindLastIndex(int startIndex, Predicate<T> match)

Parameters

startIndex int
match Predicate<T>

Returns

int

FindLastIndex(Predicate<T>)

public int FindLastIndex(Predicate<T> match)

Parameters

match Predicate<T>

Returns

int

ForEach(Action<T>)

public void ForEach(Action<T> action)

Parameters

action Action<T>

GetEnumerator()

public FastList<T>.Enumerator GetEnumerator()

Returns

FastList<T>.Enumerator

GetRange(int, int)

public FastList<T> GetRange(int index, int count)

Parameters

index int
count int

Returns

FastList<T>

IncreaseCapacity(int)

public void IncreaseCapacity(int index)

Parameters

index int

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.

IndexOf(T, int)

public int IndexOf(T item, int index)

Parameters

item T
index int

Returns

int

IndexOf(T, int, int)

public int IndexOf(T item, int index, int count)

Parameters

item T
index int
count int

Returns

int

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.

InsertRange(int, IEnumerable<T>)

public void InsertRange(int index, IEnumerable<T> collection)

Parameters

index int
collection IEnumerable<T>

LastIndexOf(T)

public int LastIndexOf(T item)

Parameters

item T

Returns

int

LastIndexOf(T, int)

public int LastIndexOf(T item, int index)

Parameters

item T
index int

Returns

int

LastIndexOf(T, int, int)

public int LastIndexOf(T item, int index, int count)

Parameters

item T
index int
count int

Returns

int

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.

RemoveAll(Predicate<T>)

public int RemoveAll(Predicate<T> match)

Parameters

match Predicate<T>

Returns

int

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.

RemoveRange(int, int)

public void RemoveRange(int index, int count)

Parameters

index int
count int

Resize(int, bool)

public void Resize(int newSize, bool fastClear)

Parameters

newSize int
fastClear bool

Reverse()

public void Reverse()

Reverse(int, int)

public void Reverse(int index, int count)

Parameters

index int
count int

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>

ToArray()

public T[] ToArray()

Returns

T[]

TrimExcess()

public void TrimExcess()

TrueForAll(Predicate<T>)

public bool TrueForAll(Predicate<T> match)

Parameters

match Predicate<T>

Returns

bool