English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C#では、ArrayListは動的に増加するサイズを持つ非泛型のオブジェクトコレクションです。それはArrayと同じですが、サイズが動的に増加するだけです。
ArrayListは、未知のデータや、知らないタイプやデータのサイズを追加するために使用できます。
System.Collections命名空間にはArrayListクラスが含まれています。ArrayListはnewキーワードを使用してオブジェクトを生成します。
using System.Collections; ArrayList arlist = new ArrayList(); // または var arlist = new 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クラスは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は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に要素を挿入するために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、
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つの要素を削除します
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クラスを説明しています。
属性 | 説明 |
---|---|
Capacity | ArrayListが含むことができる要素数を取得または設定します。 |
Count | ArrayListに実際に含まれる要素数を取得します。 |
IsFixedSize | ArrayListが固定サイズであるかどうかを示す値を取得します。 |
IsReadOnly | ArrayListが読み取り専用であるかどうかを示す値を取得します。 |
Item | 指定されたインデックスの要素を取得または設定します。 |
メソッド | 説明 |
---|---|
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から配列を返す。 |