C# では、動的配列 (ArrayList) は、個別にインデックスを付けることができる順序付けられたオブジェクトのコレクションを表します。動的配列は基本的に配列を置き換えることができます。配列との唯一の違いは、動的配列はインデックスを使用して、指定された位置に指定された項目を追加および削除でき、動的配列は自動的にサイズ変更されることです。さらに、動的配列を使用すると、リスト内での動的なメモリ割り当て、追加、検索、並べ替え、その他の操作が可能になります。
ArrayList クラスのプロパティ
C# で動的配列を作成するには、ArrayList クラスを使用する必要があります。次の表に、ArrayList クラスで一般的に使用されるプロパティを示します。
属性 | 説明 |
---|---|
Capacity | 動的配列に含めることができる要素の数を取得または設定します。 |
Count | 動的配列に実際に含まれる要素の数を取得します。 |
IsFixedSize | 動的配列が固定サイズかどうかを判断する |
IsReadOnly | 動的配列が読み取り専用かどうかを判断する |
IsSynchronized | 動的配列へのアクセスが同期的 (スレッドセーフ) であるかどうかを判断します。 |
Item[Int32] | 指定されたインデックスにある要素を取得または設定します |
SyncRoot | 動的配列への同期アクセス用のオブジェクトを取得する |
ArrayList クラスのメソッド
ArrayList クラスで一般的に使用されるメソッドを次の表に示します。
メソッド名 | 説明 |
---|---|
public virtual int Add(object value) | 動的配列の末尾にオブジェクトを追加 |
public virtual void AddRange(ICollection c) | ICollection の要素を動的配列の末尾に追加します |
public virtual void Clear() | 動的配列からすべての要素を削除します |
public virtual bool Contains(object item) | 要素が動的配列内にあるかどうかを判断する |
public virtual ArrayList GetRange(int index, int count) | ソース動的配列内の要素のサブセットを表す動的配列を返します。 |
public virtual int IndexOf(object) | 動的配列全体を検索し、動的配列内で最初に出現したオブジェクトのインデックスを返します。インデックス付けは 0 から始まります。 |
public virtual void Insert(int index, object value) | 動的配列の指定されたインデックスに要素を挿入します。 |
public virtual void InsertRange(int index, ICollection c) | 動的配列内の指定されたインデックスにコレクションの要素を挿入します。 |
public virtual void Remove(object obj) | 指定されたオブジェクトを動的配列から削除します |
public virtual void RemoveAt(int index) | 動的配列内の指定されたインデックスにある要素を削除します |
public virtual void RemoveRange(int index, int count) | 動的配列から要素の範囲を削除する |
public virtual void Reverse() | 動的配列内の要素の順序を逆にする |
public virtual void SetRange(int index, ICollection c) | コレクションの要素を動的配列内の要素の範囲にコピーします。 |
public virtual void Sort() | 動的配列内の要素を並べ替える |
public virtual void TrimToSize() | 容量を動的配列内の実際の要素数に設定します。 |
ArrayList クラスのプロパティとメソッドの詳細については、 C# の公式ドキュメントを参照してください。
[例] 次の例は、ArrayList クラスのプロパティとメソッドの使用方法を示しています。
using System;
using System.Collections;
namespace it-kiso.com
{
class Demo
{
static void Main(string[] args){
ArrayList arr_list = new ArrayList();
Console.WriteLine("Num1,Num2,Num3,...,Numnの形式で文字列を入力してください:");
string str = Console.ReadLine();
string[] strArray = str.Split(',');
foreach(string s in strArray){
arr_list.Add(s);
}
Console.WriteLine("Capacity: {0} ", arr_list.Capacity);
Console.WriteLine("Count: {0}", arr_list.Count);
Console.Write("Content: ");
foreach (string i in arr_list)
{
Console.Write(i + " ");
}
Console.WriteLine();
Console.Write("Sorted Content: ");
arr_list.Sort();
foreach (string i in arr_list)
{
Console.Write(i + " ");
}
Console.WriteLine();
Console.ReadKey();
}
}
}
操作の結果は次のようになります。
Num1,Num2,Num3,…,Numn 形式で文字列を入力してください:
213,443,11,456,23,113,56,89,23
Capacity: 16
Count: 9
Content: 213 443 11 456 23 113 56 89 23
Sorted Content: 11 113 213 23 23 443 456 56 89
「 C# ArrayList: 動的配列」についてわかりやすく解説!絶対に観るべきベスト2動画
C# Tutorial for Beginners 19 : ArrayList