Array Класс

Определение

Предоставляет методы для создания, изменения, поиска и сортировки массивов, то есть выступает в роли базового класса для всех массивов в среде CLR.

public ref class Array abstract : System::Collections::IList, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable
public ref class Array abstract : ICloneable, System::Collections::IList, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable
public ref class Array abstract : ICloneable, System::Collections::IList
public abstract class Array : System.Collections.IList, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
public abstract class Array : ICloneable, System.Collections.IList, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
[System.Serializable]
public abstract class Array : ICloneable, System.Collections.IList
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class Array : ICloneable, System.Collections.IList
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class Array : ICloneable, System.Collections.IList, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
type Array = class
    interface ICollection
    interface IEnumerable
    interface IList
    interface IStructuralComparable
    interface IStructuralEquatable
type Array = class
    interface ICollection
    interface IEnumerable
    interface IList
    interface IStructuralComparable
    interface IStructuralEquatable
    interface ICloneable
[<System.Serializable>]
type Array = class
    interface ICloneable
    interface IList
    interface ICollection
    interface IEnumerable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Array = class
    interface ICloneable
    interface IList
    interface ICollection
    interface IEnumerable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Array = class
    interface ICloneable
    interface IList
    interface ICollection
    interface IEnumerable
    interface IStructuralComparable
    interface IStructuralEquatable
type Array = class
    interface IList
    interface ICollection
    interface IEnumerable
    interface IStructuralComparable
    interface IStructuralEquatable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Array = class
    interface ICloneable
    interface ICollection
    interface IList
    interface IEnumerable
    interface IStructuralComparable
    interface IStructuralEquatable
Public MustInherit Class Array
Implements IList, IStructuralComparable, IStructuralEquatable
Public MustInherit Class Array
Implements ICloneable, IList, IStructuralComparable, IStructuralEquatable
Public MustInherit Class Array
Implements ICloneable, IList
Наследование
Array
Атрибуты
Реализации

Примеры

В следующем примере кода показано использование Array.Copy для копирования элементов между массивом целочисленного типа и массивом объектов типа Object.

using namespace System;

void PrintValues(array<Object^>^myArr);
void PrintValues(array<int>^myArr);
void main()
{
    // 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
*/
open System

let printValues myArr =
    for i in myArr do
        printf $"\t{i}"
    printfn ""

// Creates and initializes a new integer array and a new Object array.
let myIntArray = [| 1..5 |]
let myObjArray = [| 26..30 |]

// Prints the initial values of both arrays.
printfn "Initially,"
printf "integer array:"
printValues myIntArray
printfn "Object array: "
printValues myObjArray

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

// Prints the values of the modified arrays.
printfn "\nAfter copying the first two elements of the integer array to the Object array,"
printf "integer array:"
printValues myIntArray
printf"Object array: "
printValues myObjArray

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

// Prints the values of the modified arrays.
printfn $"\nAfter copying the last two elements of the Object array to the integer array,"
printf "integer array:"
printValues myIntArray
printf "Object array: "
printValues myObjArray


// 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 System;
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
*/
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

    Public Overloads 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

    Public Overloads 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

В следующем примере кода создается и инициализируется Array и отображаются его свойства и элементы.

using namespace System;
void PrintValues(Array^ myArr);
void main()
{
   // 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
 */
open System

let printValues (myArray: Array) =
    let mutable i = 0
    let cols = myArray.GetLength(myArray.Rank - 1)
    for item in myArray do
        if i < cols then
            i <- i + 1
        else
            printfn ""
            i <- 1;
        printf $"\t{item}"
    printfn ""

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

// Displays the properties of the Array.
printfn $"The Array has {myArr.Rank} dimension(s) and a total of {myArr.Length} elements."
printfn $"\tLength\tLower\tUpper"

for i = 0 to myArr.Rank - 1 do
    printf $"{i}:\t{myArr.GetLength i}"
    printfn $"\t{myArr.GetLowerBound i}\t{myArr.GetUpperBound i}"

// Displays the contents of the Array.
printfn "The Array contains the following values:"
printValues myArr

// 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
// Creates and initializes a new three-dimensional Array of type int.
Array myArr = Array.CreateInstance(typeof(int), 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);

void PrintValues(Array myArray)
{
    System.Collections.IEnumerator myEnumerator = myArray.GetEnumerator();
    int i = 0;
    int cols = myArray.GetLength(myArray.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
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

Комментарии

Класс Array не является частью пространства имен System.Collections. Тем не менее, он все равно считается коллекцией, так как он основан на интерфейсе IList.

Класс Array является базовым классом для реализаций языков, поддерживающих массивы. Однако только система и компиляторы могут явно наследовать от класса Array. Пользователи должны применять конструкции массивов, предоставляемые языком.

Элемент — это значение в Array. Длина Array — общее количество элементов, которое может содержать массив. Нижняя граница Array — это индекс его первого элемента. Array может иметь любую нижнюю границу, но по умолчанию его нижняя граница равна нулю. При создании экземпляра класса с помощью CreateInstanceможно определить другую нижнюю границуArray. Многомерный Array объект может иметь разные границы для каждого измерения. Массив может иметь не более 32 измерений.

В отличие от классов в пространстве имен System.Collections, Array имеет фиксированную емкость. Чтобы увеличить емкость, необходимо создать новый объект Array с требуемой емкостью, скопировать элементы из старого объекта Array в новый, а затем удалить старый Array.

Размер массива ограничен максимальным количеством элементов — 4 миллиарда, а также максимальным индексом 0X7FEFFFFF в любом заданном измерении (0X7FFFFFC7 для массивов байтов и однобайтовых структур).

.NET framework: По умолчанию максимальный размер Array составляет 2 гигабайта (ГБ). В 64-разрядной среде можно избежать ограничения на размер, установив значение атрибута enabled элемента конфигурации gcAllowVeryLargeObjects равным true в среде выполнения.

Одномерные массивы реализуют универсальные интерфейсы System.Collections.Generic.IList<T>, System.Collections.Generic.ICollection<T>, System.Collections.Generic.IEnumerable<T>, System.Collections.Generic.IReadOnlyList<T> и System.Collections.Generic.IReadOnlyCollection<T>. Реализации предоставляются массивам во время выполнения, и таким образом, универсальные интерфейсы не отображаются в синтаксисе объявления класса Array. Кроме того, нет справочных разделов по членам интерфейса, доступным только путем приведения массива к универсальному типу интерфейса (явные реализации интерфейса). Ключевой момент, который необходимо учитывать при приведении массива к одному из этих интерфейсов, заключается в том, что члены, которые добавляют, вставляют или удаляют элементы, вызывают исключение NotSupportedException.

Объекты Type предоставляют сведения об объявлениях типов массивов. Объекты Array с тем же типом массива имеют одинаковые объекты Type.

Type.IsArray и Type.GetElementType могут не возвращать ожидаемые результаты с Array, потому что при приведении массива к типу Array результат — это объект, который не является массивом. То есть typeof(System.Array).IsArray возвращает false, а typeof(System.Array).GetElementType возвращает null.

Метод Array.Copy копирует элементы не только между массивами одного типа, но и между стандартными массивами различных типов; он автоматически осуществляет приведение типов.

Некоторые методы, например CreateInstance, Copy, CopyTo, GetValue и SetValue, предоставляют перегрузки, принимающие 64-разрядные целые числа в качестве параметров, для обеспечения возможности работы с массивами большой емкости. LongLength и GetLongLength возвращают 64-разрядные целые числа, указывающие длину массива.

Сортировка Array не гарантируется. Перед выполнением операций, для которых требуется сортировка Array (например, BinarySearch), Array нужно предварительно отсортировать.

Использование объектов Array указателей в машинном коде не поддерживается и вызывает исключение NotSupportedException для нескольких методов.

Свойства

IsFixedSize

Получает значение, указывающее, имеет ли список Array фиксированный размер.

IsReadOnly

Получает значение, указывающее, является ли объект Array доступным только для чтения.

IsSynchronized

Возвращает значение, показывающее, является ли доступ к коллекции Array синхронизированным (потокобезопасным).

Length

Возвращает общее число элементов во всех измерениях массива Array.

LongLength

Возвращает 64-разрядное целое число, представляющее общее число элементов во всех измерениях массива Array.

MaxLength

Возвращает максимальное количество элементов, которые могут содержаться в массиве.

Rank

Получает ранг (число измерений) массива Array. Например, одномерный массив возвращает 1, двухмерный массив возвращает 2 и т д

SyncRoot

Получает объект, с помощью которого можно синхронизировать доступ к коллекции Array.

Методы

AsReadOnly<T>(T[])

Возвращает для заданного массива доступную только для чтения программу-оболочку.

BinarySearch(Array, Int32, Int32, Object)

Выполняет поиск значения в диапазоне элементов отсортированного одномерного массива, используя интерфейс IComparable, реализуемый каждым элементом массива и заданным значением.

BinarySearch(Array, Int32, Int32, Object, IComparer)

Выполняет поиск значения в диапазоне элементов отсортированного одномерного массива, используя указанный интерфейс IComparer.

BinarySearch(Array, Object)

Выполняет поиск заданного элемента во всем отсортированном одномерном массиве, используя интерфейс IComparable, реализуемый каждым элементом массива и заданным объектом.

BinarySearch(Array, Object, IComparer)

Выполняет поиск значения во всем отсортированном одномерном массиве, используя указанный универсальный интерфейс IComparer.

BinarySearch<T>(T[], Int32, Int32, T)

Выполняет поиск значения в диапазоне элементов отсортированного одномерного массива, используя для этого универсальный интерфейс IComparable<T>, реализуемый каждым элементом массива Array и заданным значением.

BinarySearch<T>(T[], Int32, Int32, T, IComparer<T>)

Выполняет поиск значения в диапазоне элементов отсортированного одномерного массива, используя указанный универсальный интерфейс IComparer<T>.

BinarySearch<T>(T[], T)

Выполняет поиск заданного элемента во всем отсортированном одномерном массиве, используя для этого универсальный интерфейс IComparable<T>, реализуемый каждым элементом массива Array и заданным объектом.

BinarySearch<T>(T[], T, IComparer<T>)

Выполняет поиск значения во всем отсортированном одномерном массиве, используя указанный универсальный интерфейс IComparer<T>.

Clear(Array)

Очищает содержимое массива.

Clear(Array, Int32, Int32)

Задает для диапазона элементов в массиве значение, предусмотренное по умолчанию для каждого типа элементов.

Clone()

Создает неполную копию Array.

ConstrainedCopy(Array, Int32, Array, Int32, Int32)

Копирует диапазон элементов из массива Array, начиная с заданного индекса источника, и вставляет его в другой массив Array, начиная с заданного индекса назначения. Гарантирует, что в случае невозможности успешно скопировать весь диапазон, все изменения будут отменены.

ConvertAll<TInput,TOutput>(TInput[], Converter<TInput,TOutput>)

Преобразует массив одного типа в массив другого типа.

Copy(Array, Array, Int32)

Копирует диапазон элементов из массива Array, начиная с первого элемента, и вставляет его в другой массив Array, также начиная с первого элемента. Длина задается как 32-битовое целое число.

Copy(Array, Array, Int64)

Копирует диапазон элементов из массива Array, начиная с первого элемента, и вставляет его в другой массив Array, также начиная с первого элемента. Длина задается как 64-битовое целое число.

Copy(Array, Int32, Array, Int32, Int32)

Копирует диапазон элементов из массива Array, начиная с заданного индекса источника, и вставляет его в другой массив Array, начиная с заданного индекса назначения. Длина и индексы задаются как 32-битовые целые числа.

Copy(Array, Int64, Array, Int64, Int64)

Копирует диапазон элементов из массива Array, начиная с заданного индекса источника, и вставляет его в другой массив Array, начиная с заданного индекса назначения. Длина и индексы задаются как 64-разрядные целые числа.

CopyTo(Array, Int32)

Копирует все элементы текущего одномерного массива в заданный одномерный массив начиная с указанного индекса в массиве назначения. Индекс задается как 32-битовое целое число.

CopyTo(Array, Int64)

Копирует все элементы текущего одномерного массива в заданный одномерный массив начиная с указанного индекса в массиве назначения. Индекс задается как 64-битовое целое число.

CreateInstance(Type, Int32)

Создает одномерный массив Array указанного типа Type и длины, индексация которого начинается с нуля.

CreateInstance(Type, Int32, Int32)

Создает двумерный массив Array указанного типа Type с заданными длинами измерений и индексацией, начинающейся с нуля.

CreateInstance(Type, Int32, Int32, Int32)

Создает трехмерный массив Array указанного типа Type с заданными длинами по измерениям и индексацией, начинающейся с нуля.

CreateInstance(Type, Int32[])

Создает многомерный массив Array заданного типа Type и с заданными значениями длины измерения и индексацией, начинающейся с нуля. Длины по измерениям задаются в массиве 32-битовых целых чисел.

CreateInstance(Type, Int32[], Int32[])

Создает многомерный массив Array с указанным типом Type и длиной по измерениям и с заданными нижними границами.

CreateInstance(Type, Int64[])

Создает многомерный массив Array заданного типа Type и с заданными значениями длины измерения и индексацией, начинающейся с нуля. Длины по измерениям задаются в массиве 64-битовых целых чисел.

Empty<T>()

Возвращает пустой массив.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Exists<T>(T[], Predicate<T>)

Определяет, содержит ли заданный массив элементы, удовлетворяющие условиям указанного предиката.

Fill<T>(T[], T)

Присваивает заданное value типа T каждому элементу указанного array.

Fill<T>(T[], T, Int32, Int32)

Присваивает заданное value типа T элементам указанного array, которые находятся в диапазоне startIndex (включительно) и следующем количестве count индексов.

Find<T>(T[], Predicate<T>)

Выполняет поиск элемента, удовлетворяющего условиям указанного предиката, и возвращает первое найденное вхождение в пределах всего списка Array.

FindAll<T>(T[], Predicate<T>)

Извлекает все элементы, удовлетворяющие условиям указанного предиката.

FindIndex<T>(T[], Int32, Int32, Predicate<T>)

Выполняет поиск элемента, удовлетворяющего условиям указанного предиката, и возвращает отсчитываемый от нуля индекс первого вхождения в диапазоне элементов списка Array, начинающемся с заданного индекса и содержащем указанное число элементов.

FindIndex<T>(T[], Int32, Predicate<T>)

Выполняет поиск элемента, удовлетворяющего условиям указанного предиката, и возвращает отсчитываемый от нуля индекс первого вхождения в диапазоне элементов списка Array, начиная с заданного индекса и заканчивая последним элементом.

FindIndex<T>(T[], Predicate<T>)

Выполняет поиск элемента, удовлетворяющего условиям указанного предиката, и возвращает отсчитываемый от нуля индекс первого найденного вхождения в пределах всего списка Array.

FindLast<T>(T[], Predicate<T>)

Выполняет поиск элемента, удовлетворяющего условиям указанного предиката, и возвращает последнее найденное вхождение в пределах всего списка Array.

FindLastIndex<T>(T[], Int32, Int32, Predicate<T>)

Выполняет поиск элемента, удовлетворяющего условиям указанного предиката, и возвращает отсчитываемый от нуля индекс последнего вхождения в диапазоне элементов списка Array, содержащем указанное число элементов и заканчивающемся элементом с заданным индексом.

FindLastIndex<T>(T[], Int32, Predicate<T>)

Выполняет поиск элемента, удовлетворяющего условиям указанного предиката, и возвращает отсчитываемый от нуля индекс последнего вхождения в диапазоне элементов списка Array, начиная с первого элемента и заканчивая элементом с заданным индексом.

FindLastIndex<T>(T[], Predicate<T>)

Выполняет поиск элемента, удовлетворяющего условиям указанного предиката, и возвращает отсчитываемый от нуля индекс последнего найденного вхождения в пределах всего списка Array.

ForEach<T>(T[], Action<T>)

Выполняет указанное действие с каждым элементом указанного массива.

GetEnumerator()

Возвращает объект IEnumerator для Array.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetLength(Int32)

Возвращает 32-разрядное целое число, представляющее количество элементов в заданном измерении массива Array.

GetLongLength(Int32)

Возвращает 64-разрядное целое число, представляющее количество элементов в заданном измерении массива Array.

GetLowerBound(Int32)

Получает Индекс первого элемента заданного измерения в массиве.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
GetUpperBound(Int32)

Получает Индекс последнего элемента заданного измерения в массиве.

GetValue(Int32)

Возвращает значение, хранящееся в указанной позиции одномерного массива Array. Индекс задается как 32-битовое целое число.

GetValue(Int32, Int32)

Получает значение в заданной позиции двумерного массива Array. Индексы задаются в виде 32-битовых целых чисел.

GetValue(Int32, Int32, Int32)

Получает значение, хранящееся в указанной позиции трехмерного массива Array. Индексы задаются в виде 32-битовых целых чисел.

GetValue(Int32[])

Получает значение, находящееся в указанной позиции многомерного массива Array. Индексы задаются как массив 32-битовых целых чисел.

GetValue(Int64)

Возвращает значение, хранящееся в указанной позиции одномерного массива Array. Индекс задается как 64-битовое целое число.

GetValue(Int64, Int64)

Получает значение в заданной позиции двумерного массива Array. Индексы задаются в виде 64-битовых целых чисел.

GetValue(Int64, Int64, Int64)

Получает значение, хранящееся в указанной позиции трехмерного массива Array. Индексы задаются в виде 64-битовых целых чисел.

GetValue(Int64[])

Получает значение, находящееся в указанной позиции многомерного массива Array. Индексы задаются как массив 64-битовых целых чисел.

IndexOf(Array, Object)

Выполняет поиск указанного объекта внутри всего одномерного массива и возвращает индекс его первого вхождения.

IndexOf(Array, Object, Int32)

Выполняет поиск указанного объекта в диапазоне элементов одномерного массива и возвращает индекс первого найденного совпадения. Диапазон начинается с указанного индекса и заканчивается концом массива.

IndexOf(Array, Object, Int32, Int32)

Выполняет поиск указанного объекта в диапазоне элементов одномерного массива и возвращает индекс первого найденного совпадения. Диапазон расширяется от указанного индекса заданного числа элементов.

IndexOf<T>(T[], T)

Выполняет поиск указанного объекта внутри всего одномерного массива и возвращает индекс его первого вхождения.

IndexOf<T>(T[], T, Int32)

Выполняет поиск указанного объекта в диапазоне элементов одномерного массива и возвращает индекс первого найденного совпадения. Диапазон начинается с указанного индекса и заканчивается концом массива.

IndexOf<T>(T[], T, Int32, Int32)

Выполняет поиск указанного объекта в диапазоне элементов одномерного массива и возвращает индекс первого найденного совпадения. Диапазон расширяется от указанного индекса заданного числа элементов.

Initialize()

Инициализирует каждый элемент массива Array типа значения путем вызова конструктора без параметров для типа значений.

LastIndexOf(Array, Object)

Выполняет поиск заданного объекта и возвращает индекс его последнего вхождения внутри всего одномерного массива Array.

LastIndexOf(Array, Object, Int32)

Выполняет поиск указанного объекта и возвращает индекс его последнего вхождения в диапазоне элементов одномерного массива Array, который начинается с первого элемента и заканчивается элементом с заданным индексом.

LastIndexOf(Array, Object, Int32, Int32)

Выполняет поиск указанного объекта и возвращает индекс последнего вхождения в диапазоне элементов одномерного массива Array, который содержит указанное число элементов и заканчивается элементом с заданным индексом.

LastIndexOf<T>(T[], T)

Выполняет поиск указанного объекта и возвращает индекс последнего вхождения во всем массиве Array.

LastIndexOf<T>(T[], T, Int32)

Выполняет поиск указанного объекта и возвращает индекс последнего вхождения в диапазоне элементов массива Array, начиная с первого элемента и заканчивая элементом с заданным индексом.

LastIndexOf<T>(T[], T, Int32, Int32)

Выполняет поиск указанного объекта и возвращает индекс последнего вхождения в диапазоне элементов массива Array, содержащем указанное число элементов и заканчивающемся в позиции с указанным индексом.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
Resize<T>(T[], Int32)

Изменяет количество элементов в одномерном массиве до указанной величины.

Reverse(Array)

Изменяет порядок элементов во всем одномерном массиве Array на обратный.

Reverse(Array, Int32, Int32)

Изменяет порядок подмножества элементов в одномерном массиве Array на обратный.

Reverse<T>(T[])

Изменяет порядок последовательности элементов в одномерном общем массиве на обратный.

Reverse<T>(T[], Int32, Int32)

Изменяет порядок последовательности подмножества элементов в одномерном общем массиве на обратный.

SetValue(Object, Int32)

Присваивает значение элементу, находящемуся в указанной позиции одномерного массива Array. Индекс задается как 32-битовое целое число.

SetValue(Object, Int32, Int32)

Присваивает значение элементу, находящемуся в указанной позиции двухмерного массива Array. Индексы задаются в виде 32-битовых целых чисел.

SetValue(Object, Int32, Int32, Int32)

Присваивает значение элементу, находящемуся в указанной позиции трехмерного массива Array. Индексы задаются в виде 32-битовых целых чисел.

SetValue(Object, Int32[])

Присваивает значение элементу, находящемуся в указанной позиции многомерного массива Array. Индексы задаются как массив 32-битовых целых чисел.

SetValue(Object, Int64)

Присваивает значение элементу, находящемуся в указанной позиции одномерного массива Array. Индекс задается как 64-битовое целое число.

SetValue(Object, Int64, Int64)

Присваивает значение элементу, находящемуся в указанной позиции двухмерного массива Array. Индексы задаются в виде 64-битовых целых чисел.

SetValue(Object, Int64, Int64, Int64)

Присваивает значение элементу, находящемуся в указанной позиции трехмерного массива Array. Индексы задаются в виде 64-битовых целых чисел.

SetValue(Object, Int64[])

Присваивает значение элементу, находящемуся в указанной позиции многомерного массива Array. Индексы задаются как массив 64-битовых целых чисел.

Sort(Array)

Сортирует элементы во всем одномерном массиве Array, используя реализацию интерфейса IComparable каждого элемента массива Array.

Sort(Array, Array)

Сортирует пару одномерных объектов Array (один содержит ключи, а другой — соответствующие элементы) по ключам в первом массиве Array, используя реализацию интерфейса IComparable каждого ключа.

Sort(Array, Array, IComparer)

Сортирует пару одномерных объектов Array (один содержит ключи, а другой — соответствующие элементы) по ключам в первом массиве Array, используя указанный интерфейс IComparer.

Sort(Array, Array, Int32, Int32)

Сортирует диапазон элементов в паре одномерных объектов Array (один содержит ключи, а другой — соответствующие элементы) по ключам в первом массиве Array, используя реализацию интерфейса IComparable каждого ключа.

Sort(Array, Array, Int32, Int32, IComparer)

Сортирует диапазон элементов в паре одномерных объектов Array (один содержит ключи, а другой — соответствующие элементы) по ключам в первом массиве Array, используя указанный интерфейс IComparer.

Sort(Array, IComparer)

Сортирует элементы в одномерном массиве Array, используя указанный интерфейс IComparer.

Sort(Array, Int32, Int32)

Сортирует элементы в диапазоне элементов одномерного массива Array с помощью реализации интерфейса IComparable каждого элемента массива Array.

Sort(Array, Int32, Int32, IComparer)

Сортирует элементы в диапазоне элементов одномерного массива Array, используя указанный интерфейс IComparer.

Sort<T>(T[])

Сортирует элементы во всем массиве Array, используя реализацию универсального интерфейса IComparable<T> каждого элемента массива Array.

Sort<T>(T[], Comparison<T>)

Сортирует элементы массива Array с использованием указанного объекта Comparison<T>.

Sort<T>(T[], IComparer<T>)

Сортирует элементы в массиве Array, используя указанный универсальный интерфейс IComparer<T>.

Sort<T>(T[], Int32, Int32)

Сортирует элементы в диапазоне элементов массива Array, используя реализацию универсального интерфейса IComparable<T> каждого элемента массива Array.

Sort<T>(T[], Int32, Int32, IComparer<T>)

Сортирует элементы в диапазоне элементов массива Array, используя указанный универсальный интерфейс IComparer<T>.

Sort<TKey,TValue>(TKey[], TValue[])

Сортирует пару объектов Array (один содержит ключи, а другой — соответствующие элементы) по ключам в первом массиве Array, используя реализацию универсального интерфейса IComparable<T> каждого ключа.

Sort<TKey,TValue>(TKey[], TValue[], IComparer<TKey>)

Сортирует пару объектов Array (один содержит ключи, а другой — соответствующие элементы) по ключам в первом массиве Array, используя указанный универсальный интерфейс IComparer<T>.

Sort<TKey,TValue>(TKey[], TValue[], Int32, Int32)

Сортирует диапазон элементов в паре объектов Array (один содержит ключи, а другой — соответствующие элементы) по ключам в первом массиве Array, используя реализацию универсального интерфейса IComparable<T> каждого ключа.

Sort<TKey,TValue>(TKey[], TValue[], Int32, Int32, IComparer<TKey>)

Сортирует диапазон элементов в паре объектов Array (один содержит ключи, а другой — соответствующие элементы) по ключам в первом массиве Array, используя указанный универсальный интерфейс IComparer<T>.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
TrueForAll<T>(T[], Predicate<T>)

Определяет, все ли элементы массива удовлетворяют условиям указанного предиката.

Явные реализации интерфейса

ICollection.Count

Получает число элементов, содержащихся в интерфейсе Array.

ICollection.IsSynchronized

Получает значение, определяющее, является ли доступ к коллекции Array синхронизированным (потокобезопасным).

ICollection.SyncRoot

Получает объект, с помощью которого можно синхронизировать доступ к коллекции Array.

IList.Add(Object)

При вызове этого метода всегда возникает исключение NotSupportedException.

IList.Clear()

Удаляет все элементы из коллекции IList.

IList.Contains(Object)

Определяет, входит ли элемент в коллекцию IList.

IList.IndexOf(Object)

Определяет индекс заданного элемента коллекции IList.

IList.Insert(Int32, Object)

Вставляет элемент в список IList по указанному индексу.

IList.IsFixedSize

Получает значение, показывающее, имеет ли объект Array фиксированный размер.

IList.IsReadOnly

Получает значение, указывающее, доступен ли объект Array только для чтения.

IList.Item[Int32]

Возвращает или задает элемент по указанному индексу.

IList.Remove(Object)

Удаляет первое вхождение указанного объекта из коллекции IList.

IList.RemoveAt(Int32)

Удаляет элемент IList по указанному индексу.

IStructuralComparable.CompareTo(Object, IComparer)

Определяет позицию текущего объекта коллекции относительно другого объекта в порядке сортировки (находится перед другим объектов, на одной позиции с ним или после другого объекта).

IStructuralEquatable.Equals(Object, IEqualityComparer)

Определяет, равен ли объект текущему экземпляру.

IStructuralEquatable.GetHashCode(IEqualityComparer)

Возвращает хэш-код текущего экземпляра.

Методы расширения

Cast<TResult>(IEnumerable)

Приводит элементы объекта IEnumerable к заданному типу.

OfType<TResult>(IEnumerable)

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.

AsParallel(IEnumerable)

Позволяет осуществлять параллельный запрос.

AsQueryable(IEnumerable)

Преобразовывает коллекцию IEnumerable в объект IQueryable.

Применяется к

Потокобезопасность

Открытые статические (Shared в Visual Basic) члены этого типа являются потокобезопасными. Потокобезопасная работа с членами экземпляров типа не гарантируется.

Эта реализация не предоставляет синхронизированную (потокобезопасную) оболочку Arrayдля ; однако классы .NET на Array основе предоставляют собственную синхронизированную версию коллекции с помощью SyncRoot свойства .

Перечисление коллекции не является потокобезопасной процедурой. Даже если коллекция синхронизирована, другие потоки могут ее изменить, что приведет к тому, что перечислитель создаст исключение. Для обеспечения потокобезопасности при перечислении можно либо заблокировать коллекцию на все время перечисления, либо перехватывать исключения, возникающие в результате изменений, внесенных другими потоками.

См. также раздел