次の方法で共有


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 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   !

注釈

Important

新しい開発には ArrayList クラスを使用しないことをお勧めします。 代わりに、ジェネリック List<T> クラスを使用することをお勧めします。 ArrayList クラスは、オブジェクトの異種コレクションを保持するように設計されています。 ただし、常に最適なパフォーマンスを提供するとは限りません。 代わりに、次のことをお勧めします。

  • オブジェクトの異種コレクションの場合は、 List<Object> (C# の場合) または List(Of Object) (Visual Basic) 型を使用します。
  • オブジェクトの同種コレクションの場合は、 List<T> クラスを使用します。 これらのクラスの相対的 なパフォーマンス については、 List<T> リファレンス トピックのパフォーマンスに関する考慮事項を参照してください。 非ジェネリック コレクション型の代わりにジェネリックの使用に関する一般的な情報については、GitHub で非ジェネリック コレクションを使用しないでください。

ArrayList が並べ替えられる保証はありません。 ArrayListを並べ替える必要がある操作 (BinarySearch など) を実行する前に、Sort メソッドを呼び出してArrayListを並べ替える必要があります。 新しい要素が追加されるときに自動的に並べ替えられるコレクションを維持するには、 SortedSet<T> クラスを使用できます。

ArrayListの容量は、ArrayListが保持できる要素の数です。 要素が ArrayListに追加されると、再割り当てによって必要に応じて容量が自動的に増加します。 容量を減らすには、 TrimToSize を呼び出すか、 Capacity プロパティを明示的に設定します。

.NET Framework のみ:非常に大きなArrayList オブジェクトの場合は、<gcAllowVeryLargeObjects>構成要素のenabled属性を実行時環境でtrueに設定することで、64 ビット システムで最大容量を 20 億要素に増やすことができます。

このコレクション内の要素には、整数インデックスを使用してアクセスできます。 このコレクション内のインデックスは 0 から始まります。

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)

特定のIListArrayList ラッパーを作成します。

Add(Object)

ArrayListの末尾にオブジェクトを追加します。

AddRange(ICollection)

ArrayListの末尾にICollectionの要素を追加します。

BinarySearch(Int32, Int32, Object, IComparer)

指定した比較子を使用して、並べ替えられた ArrayList 内の要素の範囲を検索し、要素の 0 から始まるインデックスを返します。

BinarySearch(Object, IComparer)

指定した比較子を使用して、並べ替えられた ArrayList 全体を検索し、要素の 0 から始まるインデックスを返します。

BinarySearch(Object)

既定の比較子を使用して、並べ替えられた ArrayList 全体を検索し、要素の 0 から始まるインデックスを返します。

Clear()

ArrayListからすべての要素を削除します。

Clone()

ArrayListの簡易コピーを作成します。

Contains(Object)

要素が ArrayList内にあるかどうかを判断します。

CopyTo(Array, Int32)

ターゲット配列の指定したインデックスから始まる互換性のある 1 次元Arrayに、ArrayList全体をコピーします。

CopyTo(Array)

ターゲット配列の先頭から、 ArrayList 全体を互換性のある 1 次元 Arrayにコピーします。

CopyTo(Int32, Array, Int32, Int32)

ターゲット配列の指定したインデックスから始まる、 ArrayList から互換性のある 1 次元 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, Int32, Int32)

指定した Object を検索し、指定したインデックスから始まり、指定した数の要素を含む ArrayList 内の要素の範囲内で最初に見つかった位置の 0 から始まるインデックスを返します。

IndexOf(Object, Int32)

指定した Object を検索し、指定したインデックスから最後の要素までの ArrayList 内の要素の範囲内で最初に見つかった位置の 0 から始まるインデックスを返します。

IndexOf(Object)

指定した Object を検索し、 ArrayList全体で最初に見つかった位置の 0 から始まるインデックスを返します。

Insert(Int32, Object)

指定したインデックス位置にある ArrayList に要素を挿入します。

InsertRange(Int32, ICollection)

コレクションの要素を、指定したインデックス位置にある ArrayList に挿入します。

LastIndexOf(Object, Int32, Int32)

指定した Object を検索し、指定した数の要素を含み、指定したインデックスで終わる ArrayList 内の要素の範囲内で最後に出現した位置の 0 から始まるインデックスを返します。

LastIndexOf(Object, Int32)

指定した Object を検索し、最初の要素から指定したインデックスに拡張される ArrayList 内の要素の範囲内で最後に出現した位置の 0 から始まるインデックスを返します。

LastIndexOf(Object)

指定した Object を検索し、 ArrayList全体の最後の出現位置の 0 から始まるインデックスを返します。

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内の要素の実際の数に設定します。

拡張メソッド

名前 説明
AsParallel(IEnumerable)

クエリの並列化を有効にします。

AsQueryable(IEnumerable)

IEnumerableIQueryableに変換します。

Cast<TResult>(IEnumerable)

IEnumerable の要素を指定した型にキャストします。

OfType<TResult>(IEnumerable)

指定した型に基づいて、IEnumerable の要素をフィルター処理します。

適用対象

スレッド セーフ

この型のパブリック静的 (Visual Basic のShared ) メンバーはスレッド セーフです。 インスタンス メンバーがスレッド セーフであるとは限りません。

コレクションが変更されない限り、 ArrayList は複数のリーダーを同時にサポートできます。 ArrayListのスレッド セーフを保証するには、Synchronized(IList) メソッドによって返されるラッパーを通じてすべての操作を実行する必要があります。

コレクションを列挙することは、本質的にスレッド セーフなプロシージャではありません。 コレクションが同期されている場合でも、他のスレッドはコレクションを変更できるため、列挙子は例外をスローします。 列挙中のスレッド セーフを保証するには、列挙全体の間にコレクションをロックするか、他のスレッドによって行われた変更によって発生する例外をキャッチします。

こちらもご覧ください