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
-
IList<T>ICollection<T>IEnumerable<T>
- 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
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
intThe 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
TThe 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
BinarySearch(int, int, T, IComparer<T>)
public int BinarySearch(int index, int count, T item, IComparer<T> comparer)
Parameters
Returns
BinarySearch(T)
public int BinarySearch(T item)
Parameters
item
T
Returns
BinarySearch(T, IComparer<T>)
public int BinarySearch(T item, IComparer<T> comparer)
Parameters
item
Tcomparer
IComparer<T>
Returns
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
boolif 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
TThe 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
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
intThe 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 destinationarray
.
EnsureCapacity(int)
public void EnsureCapacity(int min)
Parameters
min
int
Exists(Predicate<T>)
public bool Exists(Predicate<T> match)
Parameters
match
Predicate<T>
Returns
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
Returns
FindIndex(int, Predicate<T>)
public int FindIndex(int startIndex, Predicate<T> match)
Parameters
Returns
FindIndex(Predicate<T>)
public int FindIndex(Predicate<T> match)
Parameters
match
Predicate<T>
Returns
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
Returns
FindLastIndex(int, Predicate<T>)
public int FindLastIndex(int startIndex, Predicate<T> match)
Parameters
Returns
FindLastIndex(Predicate<T>)
public int FindLastIndex(Predicate<T> match)
Parameters
match
Predicate<T>
Returns
ForEach(Action<T>)
public void ForEach(Action<T> action)
Parameters
action
Action<T>
GetEnumerator()
public FastList<T>.Enumerator GetEnumerator()
Returns
GetRange(int, int)
public FastList<T> GetRange(int index, int count)
Parameters
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
TThe 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
Tindex
int
Returns
IndexOf(T, int, int)
public int IndexOf(T item, int index, int count)
Parameters
Returns
Insert(int, T)
Inserts an item to the IList<T> at the specified index.
public void Insert(int index, T item)
Parameters
index
intThe zero-based index at which
item
should be inserted.item
TThe 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
intcollection
IEnumerable<T>
LastIndexOf(T)
public int LastIndexOf(T item)
Parameters
item
T
Returns
LastIndexOf(T, int)
public int LastIndexOf(T item, int index)
Parameters
item
Tindex
int
Returns
LastIndexOf(T, int, int)
public int LastIndexOf(T item, int index, int count)
Parameters
Returns
Remove(T)
Removes the first occurrence of a specific object from the ICollection<T>.
public bool Remove(T item)
Parameters
item
TThe 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 ifitem
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
RemoveAt(int)
Removes the IList<T> item at the specified index.
public void RemoveAt(int index)
Parameters
index
intThe 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
Resize(int, bool)
public void Resize(int newSize, bool fastClear)
Parameters
Reverse()
public void Reverse()
Reverse(int, int)
public void Reverse(int index, int count)
Parameters
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
ToArray()
public T[] ToArray()
Returns
- T[]
TrimExcess()
public void TrimExcess()
TrueForAll(Predicate<T>)
public bool TrueForAll(Predicate<T> match)
Parameters
match
Predicate<T>