Поделиться через


ArrayList Класс

Определение

Реализует интерфейс IList с помощью массива с динамическим изменением размера по требованию.

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

Примеры

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

using namespace System;
using namespace System::Collections;
void PrintValues( IEnumerable^ myList );
int main()
{
   
   // Creates and initializes a new ArrayList.
   ArrayList^ myAL = gcnew ArrayList;
   myAL->Add( "Hello" );
   myAL->Add( "World" );
   myAL->Add( "!" );
   
   // Displays the properties and values of the ArrayList.
   Console::WriteLine( "myAL" );
   Console::WriteLine( "    Count:    {0}", myAL->Count );
   Console::WriteLine( "    Capacity: {0}", myAL->Capacity );
   Console::Write( "    Values:" );
   PrintValues( myAL );
}

void PrintValues( IEnumerable^ myList )
{
   IEnumerator^ myEnum = myList->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Object^ obj = safe_cast<Object^>(myEnum->Current);
      Console::Write( "   {0}", obj );
   }

   Console::WriteLine();
}

/* 
This code produces output similar to the following:

myAL
    Count:    3
    Capacity: 4
    Values:   Hello   World   !

*/
using System;
using System.Collections;
public class SamplesArrayList  {

   public static void Main()  {

      // Creates and initializes a new ArrayList.
      ArrayList myAL = new ArrayList();
      myAL.Add("Hello");
      myAL.Add("World");
      myAL.Add("!");

      // Displays the properties and values of the ArrayList.
      Console.WriteLine( "myAL" );
      Console.WriteLine( "    Count:    {0}", myAL.Count );
      Console.WriteLine( "    Capacity: {0}", myAL.Capacity );
      Console.Write( "    Values:" );
      PrintValues( myAL );
   }

   public static void PrintValues( IEnumerable myList )  {
      foreach ( Object obj in myList )
         Console.Write( "   {0}", obj );
      Console.WriteLine();
   }
}


/*
This code produces output similar to the following:

myAL
    Count:    3
    Capacity: 4
    Values:   Hello   World   !

*/
Imports System.Collections

Public Class SamplesArrayList    
    
    Public Shared Sub Main()
        
        ' Creates and initializes a new ArrayList.
        Dim myAL As New ArrayList()
        myAL.Add("Hello")
        myAL.Add("World")
        myAL.Add("!")
        
        ' Displays the properties and values of the ArrayList.
        Console.WriteLine("myAL")
        Console.WriteLine("    Count:    {0}", myAL.Count)
        Console.WriteLine("    Capacity: {0}", myAL.Capacity)
        Console.Write("    Values:")
        PrintValues(myAL)
    End Sub

    Public Shared Sub PrintValues(myList As IEnumerable)
        Dim obj As [Object]
        For Each obj In  myList
            Console.Write("   {0}", obj)
        Next obj
        Console.WriteLine()
    End Sub

End Class


' This code produces output similar to the following:
' 
' myAL
'     Count:    3
'     Capacity: 4
'     Values:   Hello   World   !

Комментарии

Важно!

Не рекомендуется использовать класс для разработки ArrayList новых приложений. Вместо этого рекомендуется использовать универсальный List<T> класс . Класс ArrayList предназначен для хранения разнородных коллекций объектов . Однако он не всегда обеспечивает лучшую производительность. Вместо этого рекомендуется следующее:

Сортировка ArrayList не гарантируется. Необходимо отсортировать ArrayList , вызвав его Sort метод перед выполнением операций (например BinarySearch, ), для которых требуется ArrayList отсортировать . Чтобы сохранить коллекцию, которая автоматически сортируется по мере добавления новых элементов, можно использовать SortedSet<T> класс .

Емкость ArrayList — это количество элементов, которые могут храниться ArrayList . При добавлении элементов в ArrayListемкость автоматически увеличивается по мере необходимости путем перераспределения. Емкость можно уменьшить путем вызова TrimToSize или явного Capacity задания свойства.

Только платформа .NET Framework. Для очень больших ArrayList объектов можно увеличить максимальную емкость до 2 миллиардов элементов в 64-разрядной системе, задав enabled атрибуту <gcAllowVeryLargeObjects> элемента конфигурации значение true в среде выполнения.

Доступ к элементам в этой коллекции можно получить с помощью целочисленного индекса. Индексы в этой коллекции отсчитываются от нуля.

Коллекция ArrayList принимает в null качестве допустимого значения. Он также позволяет дублировать элементы.

Использование многомерных массивов в качестве элементов в ArrayList коллекции не поддерживается.

Конструкторы

ArrayList()

Инициализирует новый экземпляр класса ArrayList, который является пустым и имеет начальную емкость по умолчанию.

ArrayList(ICollection)

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

ArrayList(Int32)

Инициализирует новый пустой экземпляр класса ArrayList с указанной начальной емкостью.

Свойства

Capacity

Возвращает или задает число элементов, которое может содержать список ArrayList.

Count

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

IsFixedSize

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

IsReadOnly

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

IsSynchronized

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

Item[Int32]

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

SyncRoot

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

Методы

Adapter(IList)

Создает оболочку класса ArrayList для указанного интерфейса IList.

Add(Object)

Добавляет объект в конец коллекции ArrayList.

AddRange(ICollection)

Добавляет элементы интерфейса ICollection в конец списка ArrayList.

BinarySearch(Int32, Int32, Object, IComparer)

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

BinarySearch(Object)

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

BinarySearch(Object, IComparer)

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

Clear()

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

Clone()

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

Contains(Object)

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

CopyTo(Array)

Копирует весь список ArrayList в совместимый одномерный массив Array, начиная с начального элемента целевого массива.

CopyTo(Array, Int32)

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

CopyTo(Int32, Array, Int32, Int32)

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

Equals(Object)

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

(Унаследовано от Object)
FixedSize(ArrayList)

Возвращает оболочку ArrayList фиксированного размера.

FixedSize(IList)

Возвращает оболочку IList фиксированного размера.

GetEnumerator()

Возвращает перечислитель для всего ArrayList.

GetEnumerator(Int32, Int32)

Возвращает перечислитель для диапазона элементов в списке ArrayList.

GetHashCode()

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

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

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

GetType()

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

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

Осуществляет поиск указанного объекта Object и возвращает отсчитываемый от нуля индекс первого вхождения в коллекцию ArrayList.

IndexOf(Object, Int32)

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

IndexOf(Object, Int32, Int32)

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

Insert(Int32, Object)

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

InsertRange(Int32, ICollection)

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

LastIndexOf(Object)

Осуществляет поиск указанного объекта Object и возвращает отсчитываемый от нуля индекс последнего вхождения в коллекцию ArrayList.

LastIndexOf(Object, Int32)

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

LastIndexOf(Object, Int32, Int32)

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

MemberwiseClone()

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

(Унаследовано от Object)
ReadOnly(ArrayList)

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

ReadOnly(IList)

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

Remove(Object)

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

RemoveAt(Int32)

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

RemoveRange(Int32, Int32)

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

Repeat(Object, Int32)

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

Reverse()

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

Reverse(Int32, Int32)

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

SetRange(Int32, ICollection)

Копирует элементы коллекции в диапазон элементов списка ArrayList.

Sort()

Сортирует элементы во всем списке ArrayList.

Sort(IComparer)

Сортирует элементы во всем списке ArrayList с помощью указанной функции сравнения.

Sort(Int32, Int32, IComparer)

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

Synchronized(ArrayList)

Возвращает синхронизированную (потокобезопасную) оболочку ArrayList.

Synchronized(IList)

Возвращает синхронизированную (потокобезопасную) оболочку IList.

ToArray()

Копирует элементы списка ArrayList в новый массив Object.

ToArray(Type)

Копирует элементы списка ArrayList в новый массив с элементами указанного типа.

ToString()

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

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

Задает значение емкости, равное действительному количеству элементов в ArrayList.

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

Cast<TResult>(IEnumerable)

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

OfType<TResult>(IEnumerable)

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

AsParallel(IEnumerable)

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

AsQueryable(IEnumerable)

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

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

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

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

может ArrayList поддерживать несколько модулей чтения одновременно, если коллекция не изменяется. Чтобы гарантировать потокобезопасность ArrayList, все операции должны выполняться через оболочку, возвращаемую методом Synchronized(IList) .

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

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