.NET Framework Class Library
Array Class

Provides methods for creating, manipulating, searching, and sorting arrays, thereby serving as the base class for all arrays in the common language runtime.

To browse the .NET Framework source code for this type, see the Reference Source.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)
Syntax
<[%$TOPIC/czz5hkty_en-us_VS_110_3_0_0_0_0%]> _
<[%$TOPIC/czz5hkty_en-us_VS_110_3_0_0_0_1%](True)> _
Public MustInherit Class Array _
	Implements [%$TOPIC/czz5hkty_en-us_VS_110_3_0_0_0_2%], [%$TOPIC/czz5hkty_en-us_VS_110_3_0_0_0_3%], [%$TOPIC/czz5hkty_en-us_VS_110_3_0_0_0_4%], [%$TOPIC/czz5hkty_en-us_VS_110_3_0_0_0_5%],  _
	[%$TOPIC/czz5hkty_en-us_VS_110_3_0_0_0_6%], [%$TOPIC/czz5hkty_en-us_VS_110_3_0_0_0_7%]
[[%$TOPIC/czz5hkty_en-us_VS_110_3_0_1_0_0%]]
[[%$TOPIC/czz5hkty_en-us_VS_110_3_0_1_0_1%](true)]
public abstract class Array : [%$TOPIC/czz5hkty_en-us_VS_110_3_0_1_0_2%], 
	[%$TOPIC/czz5hkty_en-us_VS_110_3_0_1_0_3%], [%$TOPIC/czz5hkty_en-us_VS_110_3_0_1_0_4%], [%$TOPIC/czz5hkty_en-us_VS_110_3_0_1_0_5%], [%$TOPIC/czz5hkty_en-us_VS_110_3_0_1_0_6%], [%$TOPIC/czz5hkty_en-us_VS_110_3_0_1_0_7%]
[[%$TOPIC/czz5hkty_en-us_VS_110_3_0_2_0_0%]]
[[%$TOPIC/czz5hkty_en-us_VS_110_3_0_2_0_1%](true)]
public ref class Array abstract : [%$TOPIC/czz5hkty_en-us_VS_110_3_0_2_0_2%], 
	[%$TOPIC/czz5hkty_en-us_VS_110_3_0_2_0_3%], [%$TOPIC/czz5hkty_en-us_VS_110_3_0_2_0_4%], [%$TOPIC/czz5hkty_en-us_VS_110_3_0_2_0_5%], [%$TOPIC/czz5hkty_en-us_VS_110_3_0_2_0_6%], [%$TOPIC/czz5hkty_en-us_VS_110_3_0_2_0_7%]
[<[%$TOPIC/czz5hkty_en-us_VS_110_3_0_3_0_0%]>]
[<[%$TOPIC/czz5hkty_en-us_VS_110_3_0_3_0_1%]>]
[<[%$TOPIC/czz5hkty_en-us_VS_110_3_0_3_0_2%](true)>]
type Array =  
    class 
        interface [%$TOPIC/czz5hkty_en-us_VS_110_3_0_3_0_3%] 
        interface [%$TOPIC/czz5hkty_en-us_VS_110_3_0_3_0_4%] 
        interface [%$TOPIC/czz5hkty_en-us_VS_110_3_0_3_0_5%] 
        interface [%$TOPIC/czz5hkty_en-us_VS_110_3_0_3_0_6%] 
        interface [%$TOPIC/czz5hkty_en-us_VS_110_3_0_3_0_7%] 
        interface [%$TOPIC/czz5hkty_en-us_VS_110_3_0_3_0_8%] 
    end

The Array type exposes the following members.

Properties
  NameDescription
Public property Supported by the XNA Framework IsFixedSizeGets a value indicating whether the Array has a fixed size.
Public property Supported by the XNA Framework IsReadOnlyGets a value indicating whether the Array is read-only.
Public property Supported by the XNA Framework IsSynchronizedGets a value indicating whether access to the Array is synchronized (thread safe).
Public property Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps LengthGets a 32-bit integer that represents the total number of elements in all the dimensions of the Array.
Public property LongLengthGets a 64-bit integer that represents the total number of elements in all the dimensions of the Array.
Public property Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps RankGets the rank (number of dimensions) of the Array. For example, a one-dimensional array returns 1, a two-dimensional array returns 2, and so on.
Public property Supported by the XNA Framework SyncRootGets an object that can be used to synchronize access to the Array.
Top
Methods
  NameDescription
Public method Static member AsReadOnlyTReturns a read-only wrapper for the specified array.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps BinarySearch(Array, Object)Searches an entire one-dimensional sorted array for a specific element, using the IComparable interface implemented by each element of the array and by the specified object.
Public method Static member Supported by Portable Class Library Supported in .NET for Windows Store apps BinarySearch(Array, Object, IComparer)Searches an entire one-dimensional sorted array for a value using the specified IComparer interface.
Public method Static member Supported by Portable Class Library Supported in .NET for Windows Store apps BinarySearch(Array, Int32, Int32, Object)Searches a range of elements in a one-dimensional sorted array for a value, using the IComparable interface implemented by each element of the array and by the specified value.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps BinarySearch(Array, Int32, Int32, Object, IComparer)Searches a range of elements in a one-dimensional sorted array for a value, using the specified IComparer interface.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps BinarySearchT(T, T)Searches an entire one-dimensional sorted array for a specific element, using the IComparableT generic interface implemented by each element of the Array and by the specified object.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps BinarySearchT(T, T, IComparerT)Searches an entire one-dimensional sorted array for a value using the specified IComparerT generic interface.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps BinarySearchT(T, Int32, Int32, T)Searches a range of elements in a one-dimensional sorted array for a value, using the IComparableT generic interface implemented by each element of the Array and by the specified value.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps BinarySearchT(T, Int32, Int32, T, IComparerT)Searches a range of elements in a one-dimensional sorted array for a value, using the specified IComparerT generic interface.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps ClearSets a range of elements in an array to the default value of each element type.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps CloneCreates a shallow copy of the Array.
Public method Static member Supported by Portable Class Library Supported in .NET for Windows Store apps ConstrainedCopyCopies a range of elements from an Array starting at the specified source index and pastes them to another Array starting at the specified destination index. Guarantees that all changes are undone if the copy does not succeed completely.
Public method Static member ConvertAllTInput, TOutputConverts an array of one type to an array of another type.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Copy(Array, Array, Int32)Copies a range of elements from an Array starting at the first element and pastes them into another Array starting at the first element. The length is specified as a 32-bit integer.
Public method Static member Copy(Array, Array, Int64)Copies a range of elements from an Array starting at the first element and pastes them into another Array starting at the first element. The length is specified as a 64-bit integer.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Copy(Array, Int32, Array, Int32, Int32)Copies a range of elements from an Array starting at the specified source index and pastes them to another Array starting at the specified destination index. The length and the indexes are specified as 32-bit integers.
Public method Static member Copy(Array, Int64, Array, Int64, Int64)Copies a range of elements from an Array starting at the specified source index and pastes them to another Array starting at the specified destination index. The length and the indexes are specified as 64-bit integers.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps CopyTo(Array, Int32)Copies all the elements of the current one-dimensional array to the specified one-dimensional array starting at the specified destination array index. The index is specified as a 32-bit integer.
Public method CopyTo(Array, Int64)Copies all the elements of the current one-dimensional array to the specified one-dimensional array starting at the specified destination array index. The index is specified as a 64-bit integer.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library CreateInstance(Type, Int32)Creates a one-dimensional Array of the specified Type and length, with zero-based indexing.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps CreateInstance(Type, Int32)Creates a multidimensional Array of the specified Type and dimension lengths, with zero-based indexing. The dimension lengths are specified in an array of 32-bit integers.
Public method Static member CreateInstance(Type, Int64)Creates a multidimensional Array of the specified Type and dimension lengths, with zero-based indexing. The dimension lengths are specified in an array of 64-bit integers.
Public method Static member CreateInstance(Type, Int32, Int32)Creates a two-dimensional Array of the specified Type and dimension lengths, with zero-based indexing.
Public method Static member Supported by Portable Class Library Supported in .NET for Windows Store apps CreateInstance(Type, Int32, Int32)Creates a multidimensional Array of the specified Type and dimension lengths, with the specified lower bounds.
Public method Static member CreateInstance(Type, Int32, Int32, Int32)Creates a three-dimensional Array of the specified Type and dimension lengths, with zero-based indexing.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Equals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Public method Static member Supported by Portable Class Library Supported in .NET for Windows Store apps ExistsTDetermines whether the specified array contains elements that match the conditions defined by the specified predicate.
Protected method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps FinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method Static member Supported by Portable Class Library Supported in .NET for Windows Store apps FindTSearches for an element that matches the conditions defined by the specified predicate, and returns the first occurrence within the entire Array.
Public method Static member Supported by Portable Class Library Supported in .NET for Windows Store apps FindAllTRetrieves all the elements that match the conditions defined by the specified predicate.
Public method Static member Supported by Portable Class Library Supported in .NET for Windows Store apps FindIndexT(T, PredicateT)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 Array.
Public method Static member Supported by Portable Class Library Supported in .NET for Windows Store apps FindIndexT(T, Int32, PredicateT)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 Array that extends from the specified index to the last element.
Public method Static member Supported by Portable Class Library Supported in .NET for Windows Store apps FindIndexT(T, Int32, Int32, PredicateT)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 Array that starts at the specified index and contains the specified number of elements.
Public method Static member Supported by Portable Class Library Supported in .NET for Windows Store apps FindLastTSearches for an element that matches the conditions defined by the specified predicate, and returns the last occurrence within the entire Array.
Public method Static member Supported by Portable Class Library Supported in .NET for Windows Store apps FindLastIndexT(T, PredicateT)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 Array.
Public method Static member Supported by Portable Class Library Supported in .NET for Windows Store apps FindLastIndexT(T, Int32, PredicateT)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 Array that extends from the first element to the specified index.
Public method Static member Supported by Portable Class Library Supported in .NET for Windows Store apps FindLastIndexT(T, Int32, Int32, PredicateT)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 Array that contains the specified number of elements and ends at the specified index.
Public method Static member ForEachTPerforms the specified action on each element of the specified array.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps GetEnumeratorReturns an IEnumerator for the Array.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps GetHashCodeServes as the default hash function. (Inherited from Object.)
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps GetLengthGets a 32-bit integer that represents the number of elements in the specified dimension of the Array.
Public method GetLongLengthGets a 64-bit integer that represents the number of elements in the specified dimension of the Array.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps GetLowerBoundGets the index of the first element of the specified dimension in the array.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps GetTypeGets the Type of the current instance. (Inherited from Object.)
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps GetUpperBoundGets the index of the last element of the specified dimension in the array.
Public method Supported by the XNA Framework Supported by Portable Class Library GetValue(Int32)Gets the value at the specified position in the one-dimensional Array. The index is specified as a 32-bit integer.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps GetValue(Int32)Gets the value at the specified position in the multidimensional Array. The indexes are specified as an array of 32-bit integers.
Public method GetValue(Int64)Gets the value at the specified position in the one-dimensional Array. The index is specified as a 64-bit integer.
Public method GetValue(Int64)Gets the value at the specified position in the multidimensional Array. The indexes are specified as an array of 64-bit integers.
Public method GetValue(Int32, Int32)Gets the value at the specified position in the two-dimensional Array. The indexes are specified as 32-bit integers.
Public method GetValue(Int64, Int64)Gets the value at the specified position in the two-dimensional Array. The indexes are specified as 64-bit integers.
Public method GetValue(Int32, Int32, Int32)Gets the value at the specified position in the three-dimensional Array. The indexes are specified as 32-bit integers.
Public method GetValue(Int64, Int64, Int64)Gets the value at the specified position in the three-dimensional Array. The indexes are specified as 64-bit integers.
Public method Static member Supported by Portable Class Library Supported in .NET for Windows Store apps IndexOf(Array, Object)Searches for the specified object and returns the index of its first occurrence in a one-dimensional array.
Public method Static member Supported by Portable Class Library Supported in .NET for Windows Store apps IndexOf(Array, Object, Int32)Searches for the specified object in a range of elements of a one-dimensional array, and returns the index of its first occurrence. The range extends from a specified index to the end of the array.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps IndexOf(Array, Object, Int32, Int32)Searches for the specified object in a range of elements of a one-dimensional array, and returns the index of ifs first occurrence. The range extends from a specified index for a specified number of elements.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps IndexOfT(T, T)Searches for the specified object and returns the index of its first occurrence in a one-dimensional array.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps IndexOfT(T, T, Int32)Searches for the specified object in a range of elements of a one dimensional array, and returns the index of its first occurrence. The range extends from a specified index to the end of the array.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps IndexOfT(T, T, Int32, Int32)Searches for the specified object in a range of elements of a one-dimensional array, and returns the index of its first occurrence. The range extends from a specified index for a specified number of elements.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps InitializeInitializes every element of the value-type Array by calling the default constructor of the value type.
Public method Static member Supported by Portable Class Library Supported in .NET for Windows Store apps LastIndexOf(Array, Object)Searches for the specified object and returns the index of the last occurrence within the entire one-dimensional Array.
Public method Static member Supported by Portable Class Library Supported in .NET for Windows Store apps LastIndexOf(Array, Object, Int32)Searches for the specified object and returns the index of the last occurrence within the range of elements in the one-dimensional Array that extends from the first element to the specified index.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps LastIndexOf(Array, Object, Int32, Int32)Searches for the specified object and returns the index of the last occurrence within the range of elements in the one-dimensional Array that contains the specified number of elements and ends at the specified index.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps LastIndexOfT(T, T)Searches for the specified object and returns the index of the last occurrence within the entire Array.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps LastIndexOfT(T, T, Int32)Searches for the specified object and returns the index of the last occurrence within the range of elements in the Array that extends from the first element to the specified index.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps LastIndexOfT(T, T, Int32, Int32)Searches for the specified object and returns the index of the last occurrence within the range of elements in the Array that contains the specified number of elements and ends at the specified index.
Protected method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps MemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps ResizeTChanges the number of elements of a one-dimensional array to the specified new size.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Reverse(Array)Reverses the sequence of the elements in the entire one-dimensional Array.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Reverse(Array, Int32, Int32)Reverses the sequence of the elements in a range of elements in the one-dimensional Array.
Public method Supported by the XNA Framework Supported by Portable Class Library SetValue(Object, Int32)Sets a value to the element at the specified position in the one-dimensional Array. The index is specified as a 32-bit integer.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps SetValue(Object, Int32)Sets a value to the element at the specified position in the multidimensional Array. The indexes are specified as an array of 32-bit integers.
Public method SetValue(Object, Int64)Sets a value to the element at the specified position in the one-dimensional Array. The index is specified as a 64-bit integer.
Public method SetValue(Object, Int64)Sets a value to the element at the specified position in the multidimensional Array. The indexes are specified as an array of 64-bit integers.
Public method SetValue(Object, Int32, Int32)Sets a value to the element at the specified position in the two-dimensional Array. The indexes are specified as 32-bit integers.
Public method SetValue(Object, Int64, Int64)Sets a value to the element at the specified position in the two-dimensional Array. The indexes are specified as 64-bit integers.
Public method SetValue(Object, Int32, Int32, Int32)Sets a value to the element at the specified position in the three-dimensional Array. The indexes are specified as 32-bit integers.
Public method SetValue(Object, Int64, Int64, Int64)Sets a value to the element at the specified position in the three-dimensional Array. The indexes are specified as 64-bit integers.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Sort(Array)Sorts the elements in an entire one-dimensional Array using the IComparable implementation of each element of the Array.
Public method Static member Sort(Array, Array)Sorts a pair of one-dimensional Array objects (one contains the keys and the other contains the corresponding items) based on the keys in the first Array using the IComparable implementation of each key.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Sort(Array, IComparer)Sorts the elements in a one-dimensional Array using the specified IComparer.
Public method Static member Supported by the XNA Framework Sort(Array, Array, IComparer)Sorts a pair of one-dimensional Array objects (one contains the keys and the other contains the corresponding items) based on the keys in the first Array using the specified IComparer.
Public method Static member Supported by Portable Class Library Supported in .NET for Windows Store apps Sort(Array, Int32, Int32)Sorts the elements in a range of elements in a one-dimensional Array using the IComparable implementation of each element of the Array.
Public method Static member Sort(Array, Array, Int32, Int32)Sorts a range of elements in a pair of one-dimensional Array objects (one contains the keys and the other contains the corresponding items) based on the keys in the first Array using the IComparable implementation of each key.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps Sort(Array, Int32, Int32, IComparer)Sorts the elements in a range of elements in a one-dimensional Array using the specified IComparer.
Public method Static member Supported by the XNA Framework Sort(Array, Array, Int32, Int32, IComparer)Sorts a range of elements in a pair of one-dimensional Array objects (one contains the keys and the other contains the corresponding items) based on the keys in the first Array using the specified IComparer.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps SortT(T)Sorts the elements in an entire Array using the IComparableT generic interface implementation of each element of the Array.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps SortT(T, IComparerT)Sorts the elements in an Array using the specified IComparerT generic interface.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps SortT(T, ComparisonT)Sorts the elements in an Array using the specified ComparisonT.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps SortT(T, Int32, Int32)Sorts the elements in a range of elements in an Array using the IComparableT generic interface implementation of each element of the Array.
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps SortT(T, Int32, Int32, IComparerT)Sorts the elements in a range of elements in an Array using the specified IComparerT generic interface.
Public method Static member Supported by the XNA Framework SortTKey, TValue(TKey, TValue)Sorts a pair of Array objects (one contains the keys and the other contains the corresponding items) based on the keys in the first Array using the IComparableT generic interface implementation of each key.
Public method Static member Supported by the XNA Framework SortTKey, TValue(TKey, TValue, IComparerTKey)Sorts a pair of Array objects (one contains the keys and the other contains the corresponding items) based on the keys in the first Array using the specified IComparerT generic interface.
Public method Static member Supported by the XNA Framework SortTKey, TValue(TKey, TValue, Int32, Int32)Sorts a range of elements in a pair of Array objects (one contains the keys and the other contains the corresponding items) based on the keys in the first Array using the IComparableT generic interface implementation of each key.
Public method Static member Supported by the XNA Framework SortTKey, TValue(TKey, TValue, Int32, Int32, IComparerTKey)Sorts a range of elements in a pair of Array objects (one contains the keys and the other contains the corresponding items) based on the keys in the first Array using the specified IComparerT generic interface.
Public method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps ToStringReturns a string that represents the current object. (Inherited from Object.)
Public method Static member Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps TrueForAllTDetermines whether every element in the array matches the conditions defined by the specified predicate.
Top
Extension Methods
  NameDescription
Public Extension Method Supported by Portable Class Library Supported in .NET for Windows Store apps AsParallelOverloaded. Enables parallelization of a query. (Defined by ParallelEnumerable.)
Public Extension Method Supported by Portable Class Library Supported in .NET for Windows Store apps AsParallelOverloaded. (Defined by ParallelEnumerable.)
Public Extension Method Supported by Portable Class Library Supported in .NET for Windows Store apps AsQueryableOverloaded. Converts an IEnumerable to an IQueryable. (Defined by Queryable.)
Public Extension Method Supported by Portable Class Library Supported in .NET for Windows Store apps AsQueryableOverloaded. (Defined by Queryable.)
Public Extension Method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps CastTResultOverloaded. Casts the elements of an IEnumerable to the specified type. (Defined by Enumerable.)
Public Extension Method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps CastTResultOverloaded. (Defined by Enumerable.)
Public Extension Method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps OfTypeTResultOverloaded. Filters the elements of an IEnumerable based on a specified type. (Defined by Enumerable.)
Public Extension Method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps OfTypeTResultOverloaded. (Defined by Enumerable.)
Top
Explicit Interface Implementations
  NameDescription
Explicit interface implemetation Private property Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps ICollectionCountGets the number of elements contained in the Array.
Explicit interface implemetation Private property Supported by Portable Class Library Supported in .NET for Windows Store apps ICollectionIsSynchronizedGets a value that indicates whether access to the Array is synchronized (thread safe).
Explicit interface implemetation Private property Supported by Portable Class Library Supported in .NET for Windows Store apps ICollectionSyncRootGets an object that can be used to synchronize access to the Array.
Explicit interface implemetation Private method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps IListAddCalling this method always throws a NotSupportedException exception.
Explicit interface implemetation Private method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps IListClearRemoves all items from the IList.
Explicit interface implemetation Private method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps IListContainsDetermines whether an element is in the IList.
Explicit interface implemetation Private method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps IListIndexOfDetermines the index of a specific item in the IList.
Explicit interface implemetation Private method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps IListInsertInserts an item to the IList at the specified index.
Explicit interface implemetation Private property Supported by Portable Class Library Supported in .NET for Windows Store apps IListIsFixedSizeGets a value that indicates whether the Array has a fixed size.
Explicit interface implemetation Private property Supported by Portable Class Library Supported in .NET for Windows Store apps IListIsReadOnlyGets a value that indicates whether the Array is read-only.
Explicit interface implemetation Private property Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps IListItemGets or sets the element at the specified index.
Explicit interface implemetation Private method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps IListRemoveRemoves the first occurrence of a specific object from the IList.
Explicit interface implemetation Private method Supported by the XNA Framework Supported by Portable Class Library Supported in .NET for Windows Store apps IListRemoveAtRemoves the IList item at the specified index.
Explicit interface implemetation Private method Supported by Portable Class Library Supported in .NET for Windows Store apps IStructuralComparableCompareToDetermines whether the current collection object precedes, occurs in the same position as, or follows another object in the sort order.
Explicit interface implemetation Private method Supported by Portable Class Library Supported in .NET for Windows Store apps IStructuralEquatableEqualsDetermines whether an object is equal to the current instance.
Explicit interface implemetation Private method Supported by Portable Class Library Supported in .NET for Windows Store apps IStructuralEquatableGetHashCodeReturns a hash code for the current instance.
Top
Remarks
NoteNote

To view the .NET Framework source code for this type, see the Reference Source. You can browse through the source code online, download the reference for offline viewing, and step through the sources (including patches and updates) during debugging; see instructions.

The Array class is not part of the System.Collections namespaces. However, it is still considered a collection because it is based on the IList interface.

The Array class is the base class for language implementations that support arrays. However, only the system and compilers can derive explicitly from the Array class. Users should employ the array constructs provided by the language.

An element is a value in an Array. The length of an Array is the total number of elements it can contain. The lower bound of an Array is the index of its first element. An Array can have any lower bound, but it has a lower bound of zero by default. A different lower bound can be defined when creating an instance of the Array class using CreateInstance. A multidimensional Array can have different bounds for each dimension. An array can have a maximum of 32 dimensions.

Unlike the classes in the System.Collections namespaces, Array has a fixed capacity. To increase the capacity, you must create a new Array object with the required capacity, copy the elements from the old Array object to the new one, and delete the old Array.

By default, the maximum size of an Array is 2 gigabytes (GB). In a 64-bit environment, you can avoid the size restriction by setting the enabled attribute of the gcAllowVeryLargeObjects configuration element to true in the run-time environment. However, the array will still be limited to a total of 4 billion elements, and to a maximum index of 0X7FEFFFFF in any given dimension (0X7FFFFFC7 for byte arrays and arrays of single-byte structures).

Starting with the .NET Framework 2.0, the Array class implements the System.Collections.GenericIListT, System.Collections.GenericICollectionT, and System.Collections.GenericIEnumerableT generic interfaces. The implementations are provided to arrays at run time, and as a result, the generic interfaces do not appear in the declaration syntax for the Array class. In addition, there are no reference topics for interface members that are accessible only by casting an array to the generic interface type (explicit interface implementations). The key thing to be aware of when you cast an array to one of these interfaces is that members which add, insert, or remove elements throw NotSupportedException.

Type objects provide information about array type declarations. Array objects with the same array type share the same Type object.

TypeIsArray and TypeGetElementType might not return the expected results with Array because if an array is cast to the type Array, the result is an object, not an array. That is, typeof(System.Array).IsArray returns false, and typeof(System.Array).GetElementType returns .

The ArrayCopy method copies elements not only between arrays of the same type but also between standard arrays of different types; it handles type casting automatically.

Some methods, such as CreateInstance, Copy, CopyTo, GetValue, and SetValue, provide overloads that accept 64-bit integers as parameters to accommodate large capacity arrays. LongLength and GetLongLength return 64-bit integers indicating the length of the array.

The Array is not guaranteed to be sorted. You must sort the Array prior to performing operations (such as BinarySearch) that require the Array to be sorted.

Using an Array object of pointers in native code is not supported and will throw a NotSupportedException for several methods.

Examples

The following code example shows how ArrayCopy copies elements between an array of type integer and an array of type Object.

Public Class SamplesArray    

    Public Shared Sub Main()

        ' Creates and initializes a new integer array and a new Object array. 
        Dim myIntArray() As Integer = {1, 2, 3, 4, 5}
        Dim myObjArray() As Object = {26, 27, 28, 29, 30}

        ' Prints the initial values of both arrays.
        Console.WriteLine("Initially,")
        Console.Write("integer array:")
        PrintValues(myIntArray)
        Console.Write("Object array: ")
        PrintValues(myObjArray)

        ' Copies the first two elements from the integer array to the Object array.
        System.Array.Copy(myIntArray, myObjArray, 2)

        ' Prints the values of the modified arrays.
        Console.WriteLine(ControlChars.NewLine + "After copying the first two" _
           + " elements of the integer array to the Object array,")
        Console.Write("integer array:")
        PrintValues(myIntArray)
        Console.Write("Object array: ")
        PrintValues(myObjArray)

        ' Copies the last two elements from the Object array to the integer array.
        System.Array.Copy(myObjArray, myObjArray.GetUpperBound(0) - 1, myIntArray, _
           myIntArray.GetUpperBound(0) - 1, 2)

        ' Prints the values of the modified arrays.
        Console.WriteLine(ControlChars.NewLine + "After copying the last two" _
           + " elements of the Object array to the integer array,")
        Console.Write("integer array:")
        PrintValues(myIntArray)
        Console.Write("Object array: ")
        PrintValues(myObjArray)
    End Sub 

    Overloads Public Shared Sub PrintValues(myArr() As Object)
        Dim i As Object 
        For Each i In  myArr
            Console.Write(ControlChars.Tab + "{0}", i)
        Next i
        Console.WriteLine()
    End Sub     

    Overloads Public Shared Sub PrintValues(myArr() As Integer)
        Dim i As Integer 
        For Each i In  myArr
            Console.Write(ControlChars.Tab + "{0}", i)
        Next i
        Console.WriteLine()
    End Sub 
End Class 

' This code produces the following output. 
'  
' Initially, 
' integer array:  1       2       3       4       5 
' Object array:   26      27      28      29      30 
'  
' After copying the first two elements of the integer array to the Object array, 
' integer array:  1       2       3       4       5 
' Object array:   1       2       28      29      30 
'  
' After copying the last two elements of the Object array to the integer array, 
' integer array:  1       2       3       29      30 
' Object array:   1       2       28      29      30
public class SamplesArray  {

   public static void Main()  {

      // Creates and initializes a new integer array and a new Object array. 
      int[] myIntArray = new int[5] { 1, 2, 3, 4, 5 };
      Object[] myObjArray = new Object[5] { 26, 27, 28, 29, 30 };

      // Prints the initial values of both arrays.
      Console.WriteLine( "Initially," );
      Console.Write( "integer array:" );
      PrintValues( myIntArray );
      Console.Write( "Object array: " );
      PrintValues( myObjArray );

      // Copies the first two elements from the integer array to the Object array.
      System.Array.Copy( myIntArray, myObjArray, 2 );

      // Prints the values of the modified arrays.
      Console.WriteLine( "\nAfter copying the first two elements of the integer array to the Object array," );
      Console.Write( "integer array:" );
      PrintValues( myIntArray );
      Console.Write( "Object array: " );
      PrintValues( myObjArray );

      // Copies the last two elements from the Object array to the integer array.
      System.Array.Copy( myObjArray, myObjArray.GetUpperBound(0) - 1, myIntArray, myIntArray.GetUpperBound(0) - 1, 2 );

      // Prints the values of the modified arrays.
      Console.WriteLine( "\nAfter copying the last two elements of the Object array to the integer array," );
      Console.Write( "integer array:" );
      PrintValues( myIntArray );
      Console.Write( "Object array: " );
      PrintValues( myObjArray );
   }


   public static void PrintValues( Object[] myArr )  {
      foreach ( Object i in myArr )  {
         Console.Write( "\t{0}", i );
      }
      Console.WriteLine();
   }

   public static void PrintValues( int[] myArr )  {
      foreach ( int i in myArr )  {
         Console.Write( "\t{0}", i );
      }
      Console.WriteLine();
   }
}
/* 
This code produces the following output.

Initially,
integer array:  1       2       3       4       5
Object array:   26      27      28      29      30

After copying the first two elements of the integer array to the Object array,
integer array:  1       2       3       4       5
Object array:   1       2       28      29      30

After copying the last two elements of the Object array to the integer array,
integer array:  1       2       3       29      30
Object array:   1       2       28      29      30
*/
using namespace System;
void main1();
void main2();
void main()
{
   main1();
   Console::WriteLine();
   main2();
}

void PrintValues( array<Object^>^myArr );
void PrintValues( array<int>^myArr );
void main1()
{
   // Creates and initializes a new int array and a new Object array. 
   array<int>^myIntArray = {1,2,3,4,5};
   array<Object^>^myObjArray = {26,27,28,29,30};

   // Prints the initial values of both arrays.
   Console::WriteLine(  "Initially," );
   Console::Write(  "int array:   " );
   PrintValues( myIntArray );
   Console::Write(  "Object array:" );
   PrintValues( myObjArray );

   // Copies the first two elements from the int array to the Object array.
   System::Array::Copy( myIntArray, myObjArray, 2 );

   // Prints the values of the modified arrays.
   Console::WriteLine(  "\nAfter copying the first two elements of the int array to the Object array," );
   Console::Write(  "int array:   " );
   PrintValues( myIntArray );
   Console::Write(  "Object array:" );
   PrintValues( myObjArray );

   // Copies the last two elements from the Object array to the int array.
   System::Array::Copy( myObjArray, myObjArray->GetUpperBound( 0 ) - 1, myIntArray, myIntArray->GetUpperBound( 0 ) - 1, 2 );

   // Prints the values of the modified arrays.
   Console::WriteLine(  "\nAfter copying the last two elements of the Object array to the int array," );
   Console::Write(  "int array:   " );
   PrintValues( myIntArray );
   Console::Write(  "Object array:" );
   PrintValues( myObjArray );
}

void PrintValues( array<Object^>^myArr )
{
   for ( int i = 0; i < myArr->Length; i++ )
   {
      Console::Write(  "\t{0}", myArr[ i ] );

   }
   Console::WriteLine();
}

void PrintValues( array<int>^myArr )
{
   for ( int i = 0; i < myArr->Length; i++ )
   {
      Console::Write(  "\t{0}", myArr[ i ] );

   }
   Console::WriteLine();
}


/* 
 This code produces the following output.

 Initially,
 int array:       1    2    3    4    5
 Object array:    26    27    28    29    30
 After copying the first two elements of the int array to the Object array,
 int array:       1    2    3    4    5
 Object array:    1    2    28    29    30
 After copying the last two elements of the Object array to the int array,
 int array:       1    2    3    29    30
 Object array:    1    2    28    29    30
 */

The following code example creates and initializes an Array and displays its properties and its elements.

Public Class SamplesArray2    

    Public Shared Sub Main()

        ' Creates and initializes a new three-dimensional Array of 
        ' type Int32. 
        Dim myArr As Array = Array.CreateInstance(GetType(Int32), 2, 3, 4)
        Dim i As Integer 
        For i = myArr.GetLowerBound(0) To myArr.GetUpperBound(0)
            Dim j As Integer 
            For j = myArr.GetLowerBound(1) To myArr.GetUpperBound(1)
                Dim k As Integer 
                For k = myArr.GetLowerBound(2) To myArr.GetUpperBound(2)
                    myArr.SetValue(i * 100 + j * 10 + k, i, j, k)
                Next k
            Next j 
        Next i ' Displays the properties of the Array.
        Console.WriteLine("The Array has {0} dimension(s) and a " _
           + "total of {1} elements.", myArr.Rank, myArr.Length)
        Console.WriteLine(ControlChars.Tab + "Length" + ControlChars.Tab _
           + "Lower" + ControlChars.Tab + "Upper")
        For i = 0 To myArr.Rank - 1
            Console.Write("{0}:" + ControlChars.Tab + "{1}", i, _
               myArr.GetLength(i))
            Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab _
               + "{1}", myArr.GetLowerBound(i), myArr.GetUpperBound(i))
        Next i

        ' Displays the contents of the Array.
        Console.WriteLine("The Array contains the following values:")
        PrintValues(myArr)
    End Sub 

    Public Shared Sub PrintValues(myArr As Array)
        Dim myEnumerator As System.Collections.IEnumerator = _
           myArr.GetEnumerator()
        Dim i As Integer = 0
        Dim cols As Integer = myArr.GetLength(myArr.Rank - 1)
        While myEnumerator.MoveNext()
            If i < cols Then
                i += 1
            Else
                Console.WriteLine()
                i = 1
            End If
            Console.Write(ControlChars.Tab + "{0}", myEnumerator.Current)
        End While
        Console.WriteLine()
    End Sub 
End Class 

' This code produces the following output. 
'  
' The Array has 3 dimension(s) and a total of 24 elements. 
'     Length    Lower    Upper 
' 0:    2    0    1 
' 1:    3    0    2 
' 2:    4    0    3 
' The Array contains the following values: 
'     0    1    2    3 
'     10    11    12    13 
'     20    21    22    23 
'     100    101    102    103 
'     110    111    112    113 
'     120    121    122    123 
public class SamplesArray2{

   public static void Main()  {

      // Creates and initializes a new three-dimensional Array of type Int32.
      Array myArr = Array.CreateInstance( typeof(Int32), 2, 3, 4 );
      for ( int i = myArr.GetLowerBound(0); i <= myArr.GetUpperBound(0); i++ )
         for ( int j = myArr.GetLowerBound(1); j <= myArr.GetUpperBound(1); j++ )
            for ( int k = myArr.GetLowerBound(2); k <= myArr.GetUpperBound(2); k++ )  {
               myArr.SetValue( (i*100)+(j*10)+k, i, j, k );
            }

      // Displays the properties of the Array.
      Console.WriteLine( "The Array has {0} dimension(s) and a total of {1} elements.", myArr.Rank, myArr.Length );
      Console.WriteLine( "\tLength\tLower\tUpper" );
      for ( int i = 0; i < myArr.Rank; i++ )  {
         Console.Write( "{0}:\t{1}", i, myArr.GetLength(i) );
         Console.WriteLine( "\t{0}\t{1}", myArr.GetLowerBound(i), myArr.GetUpperBound(i) );
      }

      // Displays the contents of the Array.
      Console.WriteLine( "The Array contains the following values:" );
      PrintValues( myArr );
   }


   public static void PrintValues( Array myArr )  {
      System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator();
      int i = 0;
      int cols = myArr.GetLength( myArr.Rank - 1 );
      while ( myEnumerator.MoveNext() )  {
         if ( i < cols )  {
            i++;
         } else  {
            Console.WriteLine();
            i = 1;
         }
         Console.Write( "\t{0}", myEnumerator.Current );
      }
      Console.WriteLine();
   }
}
/* 
This code produces the following output.

The Array has 3 dimension(s) and a total of 24 elements.
    Length    Lower    Upper
0:    2    0    1
1:    3    0    2
2:    4    0    3
The Array contains the following values:
    0    1    2    3
    10    11    12    13
    20    21    22    23
    100    101    102    103
    110    111    112    113
    120    121    122    123
*/
void PrintValues( Array^ myArr );
void main2()
{
   // Creates and initializes a new three-dimensional Array instance of type Int32.
   Array^ myArr = Array::CreateInstance( Int32::typeid, 2, 3, 4 );
   for ( int i = myArr->GetLowerBound( 0 ); i <= myArr->GetUpperBound( 0 ); i++ )
   {
      for ( int j = myArr->GetLowerBound( 1 ); j <= myArr->GetUpperBound( 1 ); j++ )
      {
         for ( int k = myArr->GetLowerBound( 2 ); k <= myArr->GetUpperBound( 2 ); k++ )
            myArr->SetValue( (i * 100) + (j * 10) + k, i, j, k );

      }
   }

   // Displays the properties of the Array.
   Console::WriteLine(  "The Array instance has {0} dimension(s) and a total of {1} elements.", myArr->Rank, myArr->Length );
   Console::WriteLine(  "\tLength\tLower\tUpper" );
   for ( int i = 0; i < myArr->Rank; i++ )
   {
      Console::Write(  "{0}:\t{1}", i, myArr->GetLength( i ) );
      Console::WriteLine(  "\t{0}\t{1}", myArr->GetLowerBound( i ), myArr->GetUpperBound( i ) );

   }
   Console::WriteLine(  "The Array instance contains the following values:" );
   PrintValues( myArr );
}

void PrintValues( Array^ myArr )
{
   System::Collections::IEnumerator^ myEnumerator = myArr->GetEnumerator();
   int i = 0;
   int cols = myArr->GetLength( myArr->Rank - 1 );
   while ( myEnumerator->MoveNext() )
   {
      if ( i < cols )
            i++;
      else
      {
         Console::WriteLine();
         i = 1;
      }

      Console::Write(  "\t{0}", myEnumerator->Current );
   }

   Console::WriteLine();
}

/* 
 This code produces the following output.

 The Array instance has 3 dimension(s) and a total of 24 elements.
     Length    Lower    Upper
 0:    2    0    1
 1:    3    0    2
 2:    4    0    3
 The Array instance contains the following values:
     0    1    2    3
     10    11    12    13
     20    21    22    23
     100    101    102    103
     110    111    112    113
     120    121    122    123
 */
Version Information

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

.NET for Windows Store apps

Supported in: Windows 8

Supported in: Windows Phone 8.1

Supported in: Windows Phone Silverlight 8.1

Supported in: Windows Phone Silverlight 8
Platforms

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Thread Safety

Public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

This implementation does not provide a synchronized (thread safe) wrapper for an Array; however, .NET Framework classes based on Array provide their own synchronized version of the collection using the SyncRoot property.

Enumerating through a collection is intrinsically not a thread-safe procedure. Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception. To guarantee thread safety during enumeration, you can either lock the collection during the entire enumeration or catch the exceptions resulting from changes made by other threads.