Table of Contents

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
ConstrainedList<T>
Implements
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

constraint Func<ConstrainedList<T>, T, bool>
throwException bool
errorMessage string

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

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.

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

bool

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.

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

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.

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

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.

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.