English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# ArrayList(動的な配列)

C#では、ArrayListは動的に増加するサイズを持つ非泛型のオブジェクトコレクションです。それはArrayと同じですが、サイズが動的に増加するだけです。

ArrayListは、未知のデータや、知らないタイプやデータのサイズを追加するために使用できます。

ArrayListの作成

System.Collections命名空間にはArrayListクラスが含まれています。ArrayListはnewキーワードを使用してオブジェクトを生成します。

using System.Collections;
ArrayList arlist = new ArrayList(); 
// または
var arlist = new ArrayList(); // 推奨

ArrayListに要素を追加する

Add()メソッドまたはオブジェクト初期値設定文法を使用してArrayListに要素を追加します。

ArrayListは、複数のnullと重複する値を含むことができます。

// ArrayList.Add()メソッドを使用して要素を追加します
var arlist1 = new ArrayList();
arlist1.Add(1);
arlist1.Add("Bill");
arlist1.Add(" ");
arlist1.Add(true);
arlist1.Add(4.5);
arlist1.Add(null);
// オブジェクト初期化文法を使用して要素を追加します
var arlist2 = new ArrayList()
                {
                    2, "Steve", " ", true, 4.5, null
                };

ArrayListに、AddRange(ICollection c)メソッドを使用して、完全なArray、HashTable、SortedList、ArrayList、BitArray、Queue、Stackを追加します。

var arlist1 = new ArrayList();
var arlist2 = new ArrayList()
                    {
                        1, "Bill", " ", true, 4.5, null
                    };
int[] arr = { 100, 200, 300, 400 };
Queue myQ = new Queue();
myQ.Enqueue("Hello");
myQ.Enqueue("World!");
arlist1.AddRange(arlist2); //arraylistにArrayListを追加する 
arlist1.AddRange(arr); //arraylistに配列を追加する 
arlist1.AddRange(myQ); //arraylistにキューを追加する

ArrayListにアクセスする

このArrayListクラスはIListインターフェースを実装しています。したがって、配列のようにインデックスアクセスを使用して要素にアクセスできます。インデックスは0から始まり、各続く要素に1を増やします。 1。

適切な型への明示的な変換が必要ですか、またはvar変数を使用します。

var arlist = new ArrayList()
                {
                    1,
                    "Bill",
                    300,
                    4.5f
                };
//インデックスアクセスを使用して単一の項目にアクセスします
int firstElement = (int) arlist[0]; //返します1
string secondElement = (string) arlist[1]; //「請求書」"Bill"を返します
//int secondElement = (int) arlist[1]; //エラー:文字列をintに上書きすることはできません
//varキーワードを使用して明示的な変換を行わずに使用します
var firstElement = arlist[0]; //返します1
var secondElement = arlist[1]; //「請求書」"Bill"を返します
//var fifthElement = arlist[5]; //エラー:インデックスが範囲外です
//要素の更新
arlist[0] = "Steve"; 
arlist[1] = 100;
//arlist[5] = 500; //エラー:インデックスが範囲外です

ArrayListを巡回する

ArrayListはICollectionインターフェースを実装しており、コレクションの型のイテレーションをサポートしています。したがって、ArrayListを使用してforeachおよびforループでイテレーションを行います。ArrayListのCountプロパティはArrayList内の要素の総数を返します。

ArrayList arlist = new ArrayList()
                        {
                            1,
                            "Bill",
                            300,
                            4.5F
                        };
foreach(var item in arlist)
    Console.Write(item + ", "); //出力:1、Bill、300、4.5、 
            
for(int i = 0; i < arlist.Count; i++)
    Console.Write(arlist[i] + ", "); //出力:1、Bill、300、4.5、

ArrayListに要素を挿入

指定されたインデックスにArrayListに要素を挿入するためにInsert()メソッドを使用します。

文法:

void Insert(int index, Object value)
ArrayList arlist = new ArrayList()
                {
                    1,
                    "Bill",
                    300,
                    4.5f
                };
arlist.Insert(1, "Second Item");
foreach(var val in arlist)
    Console.WriteLine(val);

InsertRange()メソッドを使用して、指定されたインデックスにArrayListに集合を挿入します。

文法: 

void InsertRange(int index, ICollection c)
ArrayList arlist1 = new ArrayList()
                {
                    100, 200, 600
                };
ArrayList arlist2 = new ArrayList()
                {
                    300, 400, 500
                };
arlist1.InsertRange(2, arlist2);
foreach(var item in arlist1)
    Console.Write(item + ", "); //出力:100、200、300、400、500、600、

ArrayListから要素を削除

Remove()、RemoveAt()、RemoveRangeメソッドを使用してArrayListから要素を削除します。

ArrayList arList = new ArrayList()
                {
                    1,
                    null,
                    "Bill",
                    300,
                    " ",
                    4.5f,
                    300,
                };
arList.Remove(null); //nullが最初に出现する場所を削除
arList.RemoveAt(4); //インデックスを削除4の場所の要素
arList.RemoveRange(0, 2);//最初のプロジェクト(インデックス0)から2つの要素を削除します

ArrayListの要素を確認します

Contains()メソッドを使用して、指定された要素がArrayListに存在するかどうかを確認します。存在する場合はtrue、存在しない場合はfalseを返します。

ArrayList arList = new ArrayList()
                {
                    1,
                    "Bill",
                    300,
                    4.5f,
                    300
                };
Console.WriteLine(arList.Contains(300)); // 
Console.WriteLine(arList.Contains("Bill")); // 
Console.WriteLine(arList.Contains(10)); // false
Console.WriteLine(arList.Contains("Steve")); // false
ArrayListはパフォーマンス問題のため、 このクラスは推奨されません。代わりに、List<object>を使用して異なるデータ型のオブジェクトを保存します。同じデータ型のデータを保存する場合は、ジェネリックリスト List<T>を使用してください。

ArrayListクラス

以下の図はArrayListクラスを説明しています。

C#ArrayList

ArrayList属性

属性
説明
Capacity

ArrayListが含むことができる要素数を取得または設定します。

Count

ArrayListに実際に含まれる要素数を取得します。

IsFixedSize

ArrayListが固定サイズであるかどうかを示す値を取得します。

IsReadOnly

ArrayListが読み取り専用であるかどうかを示す値を取得します。

Item

指定されたインデックスの要素を取得または設定します。

ArrayListメソッド

メソッド説明
Add()/AddRange()

Add()メソッドは、ArrayListの末尾に単一の要素を追加します。

AddRange()メソッドは、指定されたコレクションの全ての要素をArrayListに追加します。

Insert()/InsertRange()

Insert()メソッドは、ArrayListの指定されたインデックスに単一の要素を挿入します。

InsertRange()メソッドは、ArrayListの指定されたインデックスから指定されたコレクションの全ての要素を挿入します。

Remove()/RemoveRange()

Remove()メソッドは、ArrayListから指定された要素を削除します。

RemoveRange()メソッドは、ArrayListから指定された範囲の要素を削除します。

RemoveAt()

指定されたインデックスの要素をArrayListから削除します。

Sort()

ArrayListの全ての要素をソートします。

Reverse()

ArrayList内の全ての要素の順序を反転します。

Contains

指定された要素がArrayListに存在するかどうかを確認します。存在する場合にはtrue、存在しない場合にはfalseを返します。

Clear

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

CopyTo

すべての要素または要素範囲を可編集配列にコピーします。

GetRange

ArrayListから指定されたインデックスで指定された要素数を返します。

IndexOf

指定された要素を検索し、見つかった場合にはゼロから始まるインデックスを返します。要素が見つからない場合には、-1。

ToArray

ArrayListから配列を返す。