Class ConstrainedList<T>
- Namespace
 - Stride.Core.Collections
 
- Assembly
 - Stride.Core.dll
 
Represent a collection associated with a constraint. When an item is added to this collection, it is tested against the constraint. If the test fails, the item can either be discarded, or an exception can be thrown. The desired behavior can be defined with ThrowException.
[DataSerializer(typeof(ListAllSerializer<,>), Mode = DataSerializerGenericMode.TypeAndGenericArguments)]
public class ConstrainedList<T> : IList<T>, ICollection<T>, IReadOnlyList<T>, IReadOnlyCollection<T>, IEnumerable<T>, IEnumerable
  Type Parameters
T
- Inheritance
 - 
      objectConstrainedList<T>
 
- Implements
 - 
      IList<T>ICollection<T>IEnumerable<T>
 
- Derived
 
- Extension Methods
 
Constructors
ConstrainedList()
public ConstrainedList()
  ConstrainedList(Func<ConstrainedList<T>, T, bool>?, bool, string?)
public ConstrainedList(Func<ConstrainedList<T>, T, bool>? constraint = null, bool throwException = true, string? errorMessage = null)
  Parameters
constraintFunc<ConstrainedList<T>, T, bool>throwExceptionboolerrorMessagestring
Properties
Constraint
Gets or sets the constraint for items added to the collection. If null, this collection behaves like a List<T>.
public Func<ConstrainedList<T>, T, bool>? Constraint { get; set; }
  Property Value
- Func<ConstrainedList<T>, T, bool>
 
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>.
IsReadOnly
Gets a value indicating whether the ICollection<T> is read-only.
public bool IsReadOnly { get; }
  Property Value
- bool
 true if the ICollection<T> is read-only; otherwise, false.
this[int]
Gets or sets the element at the specified index.
public T this[int index] { get; set; }
  Parameters
indexintThe zero-based index of the element to get or set.
Property Value
- T
 The element at the specified index.
Exceptions
- ArgumentOutOfRangeException
 indexis not a valid index in the IList<T>.- NotSupportedException
 The property is set and the IList<T> is read-only.
ThrowException
Gets or sets whether the collection should throw an ArgumentException when an item to add or insert doesn't pass the constraint.
public bool ThrowException { get; set; }
  Property Value
Methods
Add(T)
Adds an item to the ICollection<T>.
public void Add(T item)
  Parameters
itemTThe object to add to the ICollection<T>.
Exceptions
- NotSupportedException
 The ICollection<T> is read-only.
Clear()
Removes all items from the ICollection<T>.
public void Clear()
  Exceptions
- NotSupportedException
 The ICollection<T> is read-only.
Contains(T)
Determines whether the ICollection<T> contains a specific value.
public bool Contains(T item)
  Parameters
itemTThe object to locate in the ICollection<T>.
Returns
- bool
 true if
itemis 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
arrayT[]The one-dimensional Array that is the destination of the elements copied from ICollection<T>. The Array must have zero-based indexing.
arrayIndexintThe zero-based index in
arrayat which copying begins.
Exceptions
- ArgumentNullException
 arrayis null.- ArgumentOutOfRangeException
 arrayIndexis less than 0.- ArgumentException
 The number of elements in the source ICollection<T> is greater than the available space from
arrayIndexto the end of the destinationarray.
GetEnumerator()
public List<T>.Enumerator GetEnumerator()
  Returns
- List<T>.Enumerator
 
IndexOf(T)
Determines the index of a specific item in the IList<T>.
public int IndexOf(T item)
  Parameters
itemTThe object to locate in the IList<T>.
Returns
- int
 The index of
itemif 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
indexintThe zero-based index at which
itemshould be inserted.itemTThe object to insert into the IList<T>.
Exceptions
- ArgumentOutOfRangeException
 indexis not a valid index in the IList<T>.- NotSupportedException
 The IList<T> is read-only.
Remove(T)
Removes the first occurrence of a specific object from the ICollection<T>.
public bool Remove(T item)
  Parameters
itemTThe object to remove from the ICollection<T>.
Returns
- bool
 true if
itemwas successfully removed from the ICollection<T>; otherwise, false. This method also returns false ifitemis 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
indexintThe zero-based index of the item to remove.
Exceptions
- ArgumentOutOfRangeException
 indexis not a valid index in the IList<T>.- NotSupportedException
 The IList<T> is read-only.