ImmutableList<T> Class
Represents an immutable list, which is a strongly typed list of objects that can be accessed by index.
NuGet package: System.Collections.Immutable (about immutable collections and how to install)
Assembly: System.Collections.Immutable (in System.Collections.Immutable.dll)
generic<typename T> [DefaultMemberAttribute("Item")] [DebuggerDisplayAttribute("Count = {Count}")] public ref class ImmutableList sealed : IImmutableList<T>, IReadOnlyList<T>, IReadOnlyCollection<T>, IEnumerable<T>, IEnumerable, IList<T>, ICollection<T>, IList, ICollection
Type Parameters
- T
The type of elements in the list.
| Name | Description | |
|---|---|---|
![]() | Count | Gets the number of elements contained in the list. |
![]() | IsEmpty | Gets a value that indicates whether this list is empty. |
![]() | Item[Int32] | Gets the element at the specified index of the list. |
| Name | Description | |
|---|---|---|
![]() | Add(T) | Adds the specified object to the end of the immutable list. |
![]() | AddRange(IEnumerable<T>^) | Adds the elements of the specified collection to the end of the immutable list. |
![]() | BinarySearch(T) | Searches the entire sorted list for an element using the default comparer and returns the zero-based index of the element. |
![]() | BinarySearch(T, IComparer<T>^) | Searches the entire sorted list for an element using the specified comparer and returns the zero-based index of the element. |
![]() | BinarySearch(Int32, Int32, T, IComparer<T>^) | Searches a range of elements in the sorted list for an element using the specified comparer and returns the zero-based index of the element. |
![]() | Clear() | Removes all elements from the immutable list. |
![]() | Contains(T) | Determines whether this immutable list contains the specified value. |
![]() | ConvertAll<TOutput>(Func<T, TOutput>^) | Converts the elements in the current immutable list to another type, and returns a list containing the converted elements. |
![]() | CopyTo(array<T>^) | Copies the entire immutable list to a compatible one-dimensional array, starting at the beginning of the target array. |
![]() | CopyTo(array<T>^, Int32) | Copies the entire immutable list to a compatible one-dimensional array, starting at the specified index of the target array. |
![]() | CopyTo(Int32, array<T>^, Int32, Int32) | Copies a range of elements from the immutable list to a compatible one-dimensional array, starting at the specified index of the target array. |
![]() | Equals(Object^) | (Inherited from Object.) |
![]() | Exists(Predicate<T>^) | Determines whether the immutable list contains elements that match the conditions defined by the specified predicate. |
![]() | Find(Predicate<T>^) | Searches for an element that matches the conditions defined by the specified predicate, and returns the first occurrence within the entire immutable list. |
![]() | FindAll(Predicate<T>^) | Retrieves all the elements that match the conditions defined by the specified predicate. |
![]() | FindIndex(Int32, Int32, Predicate<T>^) | Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the immutable list that starts at the specified index and contains the specified number of elements. |
![]() | FindIndex(Int32, Predicate<T>^) | Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the immutable list that extends from the specified index to the last element. |
![]() | FindIndex(Predicate<T>^) | Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the entire immutable list. |
![]() | FindLast(Predicate<T>^) | Searches for an element that matches the conditions defined by the specified predicate, and returns the last occurrence within the entire immutable list. |
![]() | FindLastIndex(Int32, Int32, Predicate<T>^) | Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the immutable list that contains the specified number of elements and ends at the specified index. |
![]() | FindLastIndex(Int32, Predicate<T>^) | Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the immutable list that extends from the first element to the specified index. |
![]() | FindLastIndex(Predicate<T>^) | Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the entire immutable list. |
![]() | ForEach(Action<T>^) | Performs the specified action on each element of the immutable list. |
![]() | GetEnumerator() | Returns an enumerator that iterates through the immutable list. |
![]() | GetHashCode() | (Inherited from Object.) |
![]() | GetRange(Int32, Int32) | Creates a shallow copy of a range of elements in the source immutable list. |
![]() | GetType() | (Inherited from Object.) |
![]() | IndexOf(T) | Searches for the specified object and returns the zero-based index of the first occurrence within the entire immutable list. |
![]() | IndexOf(T, Int32, Int32, IEqualityComparer<T>^) | Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the list that starts at the specified index and contains the specified number of elements. |
![]() | Insert(Int32, T) | Inserts the specified object into the immutable list at the specified index. |
![]() | InsertRange(Int32, IEnumerable<T>^) | Inserts the elements of a collection into the immutable list at the specified index. |
![]() | LastIndexOf(T, Int32, Int32, IEqualityComparer<T>^) | Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the list that contains the specified number of elements and ends at the specified index. |
![]() | Remove(T) | Removes the first occurrence of the specified object from this immutable list. |
![]() | Remove(T, IEqualityComparer<T>^) | Removes the first occurrence of the object that matches the specified value from this immutable list. |
![]() | RemoveAll(Predicate<T>^) | Removes all the elements that match the conditions defined by the specified predicate. |
![]() | RemoveAt(Int32) | Removes the element at the specified index. |
![]() | RemoveRange(IEnumerable<T>^) | Removes a range of elements from this immutable list. |
![]() | RemoveRange(IEnumerable<T>^, IEqualityComparer<T>^) | Removes the specified values from this list. |
![]() | RemoveRange(Int32, Int32) | Removes a range of elements, starting from the specified index and containing the specified number of elements, from this immutable list. |
![]() | Replace(T, T) | Replaces the specified element in the immutable list with a new element. |
![]() | Replace(T, T, IEqualityComparer<T>^) | Replaces the specified element in the immutable list with a new element. |
![]() | Reverse() | Reverses the order of the elements in the entire immutable list. |
![]() | Reverse(Int32, Int32) | Reverses the order of the elements in the specified range of the immutable list. |
![]() | SetItem(Int32, T) | Replaces an element at a given position in the immutable list with the specified element. |
![]() | Sort() | Sorts the elements in the entire immutable list using the default comparer. |
![]() | Sort(Comparison<T>^) | Sorts the elements in the entire immutable list using the specified comparer. |
![]() | Sort(IComparer<T>^) | Sorts the elements in the entire immutable list using the specified comparer. |
![]() | Sort(Int32, Int32, IComparer<T>^) | Sorts a range of elements in the immutable list using the specified comparer. |
![]() | ToBuilder() | Creates a list that has the same contents as this list and can be efficiently mutated across multiple operations using standard mutable interfaces. |
![]() | ToString() | (Inherited from Object.) |
![]() | TrueForAll(Predicate<T>^) | Determines whether every element in the immutable list matches the conditions defined by the specified predicate. |
| Name | Description | |
|---|---|---|
![]() ![]() | ICollection<T>::Add(T) | Adds the specified item to the immutable list. |
![]() ![]() | ICollection<T>::Clear() | Removes all items from the immutable list. |
![]() ![]() | ICollection<T>::Remove(T) | Removes the first occurrence of a specific object from the immutable list. |
![]() ![]() | IEnumerable<T>::GetEnumerator() | Returns an enumerator that iterates through the immutable list. |
![]() ![]() | IList<T>::Insert(Int32, T) | Inserts an object in the immutable list at the specified index. |
![]() ![]() | IList<T>::RemoveAt(Int32) | Removes the value at the specified index. |
![]() ![]() | ICollection::CopyTo(Array^, Int32) | Copies the entire immutable list to a compatible one-dimensional array, starting at the specified array index. |
![]() ![]() | IEnumerable::GetEnumerator() | Returns an enumerator that iterates through the immutable list. |
![]() ![]() | IList::Add(Object^) | Adds an item to the immutable list. |
![]() ![]() | IList::Clear() | Removes all items from the immutable list. |
![]() ![]() | IList::Contains(Object^) | Determines whether the immutable list contains a specific value. |
![]() ![]() | IList::IndexOf(Object^) | Determines the index of a specific item in the immutable list. |
![]() ![]() | IList::Insert(Int32, Object^) | Inserts an item into the immutable list at the specified index. |
![]() ![]() | IList::Remove(Object^) | Removes the first occurrence of a specific object from the immutable list. |
![]() ![]() | IList::RemoveAt(Int32) | Removes the item at the specified index of the immutable list. |
![]() ![]() | IImmutableList<T>::Add(T) | Adds the specified value to this immutable list. |
![]() ![]() | IImmutableList<T>::AddRange(IEnumerable<T>^) | Adds the specified values to this immutable list. |
![]() ![]() | IImmutableList<T>::Clear() | Retrieves an empty list that has the same sorting and ordering semantics as this instance. |
![]() ![]() | IImmutableList<T>::Insert(Int32, T) | Inserts the specified element at the specified index in the immutable list. |
![]() ![]() | IImmutableList<T>::InsertRange(Int32, IEnumerable<T>^) | Inserts the specified elements at the specified index in the immutable list. |
![]() ![]() | IImmutableList<T>::Remove(T, IEqualityComparer<T>^) | Removes the element with the specified value from the list. |
![]() ![]() | IImmutableList<T>::RemoveAll(Predicate<T>^) | Removes all the elements that match the conditions defined by the specified predicate. |
![]() ![]() | IImmutableList<T>::RemoveAt(Int32) | Removes the element at the specified index of the immutable list. |
![]() ![]() | IImmutableList<T>::RemoveRange(IEnumerable<T>^, IEqualityComparer<T>^) | Removes a range of elements from this immutable list that match the items specified. |
![]() ![]() | IImmutableList<T>::RemoveRange(Int32, Int32) | Removes the specified number of elements at the specified location from this list. |
![]() ![]() | IImmutableList<T>::Replace(T, T, IEqualityComparer<T>^) | Replaces an element in the list with the specified element. |
![]() ![]() | IImmutableList<T>::SetItem(Int32, T) | Replaces an element in the list at a given position with the specified element. |
![]() ![]() | ICollection<T>::IsReadOnly | Gets a value indicating whether the ICollection<T> is read-only. |
![]() ![]() | IList<T>::Item[Int32] | Gets or sets the value at the specified index. |
![]() ![]() | ICollection::IsSynchronized | See the ICollection interface. |
![]() ![]() | ICollection::SyncRoot | See ICollection. |
![]() ![]() | IList::IsFixedSize | Gets a value indicating whether the IList has a fixed size. |
![]() ![]() | IList::IsReadOnly | Gets a value indicating whether the ICollection<T> is read-only. |
![]() ![]() | IList::Item[Int32] | Gets or sets the Object at the specified index. |
| Name | Description | |
|---|---|---|
![]() | IndexOf<T>(T) | Overloaded. Searches for the specified object and returns the zero-based index of the first occurrence within the list.(Defined by ImmutableList.) |
![]() | IndexOf<T>(T, IEqualityComparer<T>^) | Overloaded. Searches for the specified object and returns the zero-based index of the first occurrence within the list.(Defined by ImmutableList.) |
![]() | IndexOf<T>(T, Int32) | Overloaded. Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the immutable list that extends from the specified index to the last element.(Defined by ImmutableList.) |
![]() | IndexOf<T>(T, Int32, Int32) | Overloaded. Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the immutable list that extends from the specified index to the last element.(Defined by ImmutableList.) |
![]() | LastIndexOf<T>(T) | Overloaded. Searches for the specified object and returns the zero-based index of the last occurrence within the entire immutable list.(Defined by ImmutableList.) |
![]() | LastIndexOf<T>(T, IEqualityComparer<T>^) | Overloaded. Searches for the specified object and returns the zero-based index of the last occurrence within the entire immutable list.(Defined by ImmutableList.) |
![]() | LastIndexOf<T>(T, Int32) | Overloaded. Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the immutable list that extends from the first element to the specified index.(Defined by ImmutableList.) |
![]() | LastIndexOf<T>(T, Int32, Int32) | Overloaded. Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the immutable list that extends from the first element to the specified index.(Defined by ImmutableList.) |
![]() | Remove<T>(T) | Removes the specified value from this list.(Defined by ImmutableList.) |
![]() | RemoveRange<T>(IEnumerable<T>^) | Removes the specified values from this list.(Defined by ImmutableList.) |
![]() | Replace<T>(T, T) | Replaces the first equal element in the list with the specified element.(Defined by ImmutableList.) |
![]() | ToImmutableArray<T>() | Creates an immutable array from the specified collection.(Defined by ImmutableArray.) |
![]() | ToImmutableDictionary<T, TKey>(Func<T, TKey>^) | Overloaded. Constructs an immutable dictionary from an existing collection of elements, applying a transformation function to the source keys.(Defined by ImmutableDictionary.) |
![]() | ToImmutableDictionary<T, TKey>(Func<T, TKey>^, IEqualityComparer<TKey>^) | Overloaded. Constructs an immutable dictionary based on some transformation of a sequence.(Defined by ImmutableDictionary.) |
![]() | ToImmutableDictionary<T, TKey, TValue>(Func<T, TKey>^, Func<T, TValue>^) | Overloaded. Enumerates and transforms a sequence, and produces an immutable dictionary of its contents.(Defined by ImmutableDictionary.) |
![]() | ToImmutableDictionary<T, TKey, TValue>(Func<T, TKey>^, Func<T, TValue>^, IEqualityComparer<TKey>^) | Overloaded. Enumerates and transforms a sequence, and produces an immutable dictionary of its contents by using the specified key comparer.(Defined by ImmutableDictionary.) |
![]() | ToImmutableDictionary<T, TKey, TValue>(Func<T, TKey>^, Func<T, TValue>^, IEqualityComparer<TKey>^, IEqualityComparer<TValue>^) | Overloaded. Enumerates and transforms a sequence, and produces an immutable dictionary of its contents by using the specified key and value comparers.(Defined by ImmutableDictionary.) |
![]() | ToImmutableHashSet<T>() | Overloaded. Enumerates a sequence and produces an immutable hash set of its contents.(Defined by ImmutableHashSet.) |
![]() | ToImmutableHashSet<T>(IEqualityComparer<T>^) | Overloaded. Enumerates a sequence, produces an immutable hash set of its contents, and uses the specified equality comparer for the set type.(Defined by ImmutableHashSet.) |
![]() | ToImmutableList<T>() | Enumerates a sequence and produces an immutable list of its contents.(Defined by ImmutableList.) |
![]() | ToImmutableSortedDictionary<T, TKey, TValue>(Func<T, TKey>^, Func<T, TValue>^) | Overloaded. Enumerates and transforms a sequence, and produces an immutable sorted dictionary of its contents.(Defined by ImmutableSortedDictionary.) |
![]() | ToImmutableSortedDictionary<T, TKey, TValue>(Func<T, TKey>^, Func<T, TValue>^, IComparer<TKey>^) | Overloaded. Enumerates and transforms a sequence, and produces an immutable sorted dictionary of its contents by using the specified key comparer.(Defined by ImmutableSortedDictionary.) |
![]() | ToImmutableSortedDictionary<T, TKey, TValue>(Func<T, TKey>^, Func<T, TValue>^, IComparer<TKey>^, IEqualityComparer<TValue>^) | Overloaded. Enumerates and transforms a sequence, and produces an immutable sorted dictionary of its contents by using the specified key and value comparers.(Defined by ImmutableSortedDictionary.) |
![]() | ToImmutableSortedSet<T>() | Overloaded. Enumerates a sequence and produces an immutable sorted set of its contents.(Defined by ImmutableSortedSet.) |
![]() | ToImmutableSortedSet<T>(IComparer<T>^) | Overloaded. Enumerates a sequence, produces an immutable sorted set of its contents, and uses the specified comparer.(Defined by ImmutableSortedSet.) |
When you add or remove items from an immutable list, a copy of the original list is made with the items added or removed, and the original list is unchanged.
This type is thread safe.






