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
-
IList<T>ICollection<T>IEnumerable<T>
- 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
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
intThe 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
TThe 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
TEThe 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
TThe 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
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
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
TThe 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
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.
InsertItem(int, T)
protected virtual void InsertItem(int index, T item)
Parameters
index
intitem
T
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.
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.
RemoveItem(int)
protected virtual void RemoveItem(int index)
Parameters
index
int
SetItem(int, T)
protected virtual void SetItem(int index, T item)
Parameters
index
intitem
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)