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
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 может иметь любую нижнюю границу, но по умолчанию она имеет нижнюю границу. При создании экземпляра класса Array с помощью CreateInstanceможно определить другую нижнюю границу. Многомерные Array могут иметь разные границы для каждого измерения. Массив может иметь не более 32 измерений.

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

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

только .NET Framework: По умолчанию максимальный размер Array составляет 2 гигабайта (ГБ). В 64-разрядной среде можно избежать ограничения размера, задав атрибут enabledgcAllowVeryLargeObjects элемент конфигурации 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 не гарантируется сортировкой. Перед выполнением операций (например, BinarySearch) необходимо отсортировать Array, которые требуют сортировки 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-разрядных целых чисел.

CreateInstanceFromArrayType(Type, Int32)

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

CreateInstanceFromArrayType(Type, Int32[])

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

CreateInstanceFromArrayType(Type, Int32[], Int32[])

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

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)

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

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.

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

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