C# ArrayList類

2019-10-16 23:17:11

它表示可以單獨編製索引的物件的有序集合。它基本上是一個陣列的替代品。 但是,與陣列不同,可以使用索引來從列表中指定位置新增和刪除專案,並且陣列自動調整大小。 它還允許動態記憶體分配,新增,搜尋和排序列表中的專案。

ArrayList類的方法和屬性

下表列出了ArrayList類的一些常用屬性:

屬性 描述
Capacity 獲取或設定ArrayList可以包含的元素數。
Count 獲取ArrayList中實際包含的元素數。
IsFixedSize 獲取一個值,指示ArrayList是否具有固定大小。
IsReadOnly 獲取一個值,指示ArrayList是否為唯讀。
Item 獲取或設定指定索引處的元素。

下表列出了ArrayList類的一些常用方法:

序號 方法 描述
1 public virtual int Add(object value); 將物件新增到ArrayList的末尾。
2 public virtual void AddRange(ICollection c); ICollection元素新增到ArrayList的末尾。
3 public virtual void Clear(); ArrayList中刪除所有元素。
4 public virtual bool Contains(object item); 確定元素是否在ArrayList中。
5 public virtual ArrayList GetRange(int index, int count); 返回一個ArrayList,它表示源ArrayList中元素的一個子集。
6 public virtual int IndexOf(object); 返回ArrayList或其一部分中從零開始第一次出現值的索引。
7 public virtual void Insert(int index, object value); 在指定索引的ArrayList中插入一個元素。
8 public virtual void InsertRange(int index, ICollection c); 將集合的元素插入到指定索引的ArrayList中。
9 public virtual void Remove(object obj); ArrayList中刪除指定第一次出現的物件。
10 public virtual void RemoveAt(int index); 刪除ArrayList的指定索引處的元素。
11 public virtual void RemoveRange(int index, int count); ArrayList中刪除一系列元素。
12 public virtual void Reverse(); 反轉ArrayList中元素的順序。
13 public virtual void SetRange(int index, ICollection c); ArrayList中的一系列元素上複製集合的元素。
14 public virtual void Sort(); ArrayList中的元素進行排序。
15 public virtual void TrimToSize(); 將容量設定為ArrayList中實際的元素數量。

例子

以下範例演示了上述概念:

using System;
using System.Collections;

namespace CollectionApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            ArrayList al = new ArrayList();

            Console.WriteLine("Adding some numbers:");
            al.Add(41);
            al.Add(70);
            al.Add(133);
            al.Add(56);
            al.Add(120);
            al.Add(213);
            al.Add(90);
            al.Add(111);

            Console.WriteLine("Capacity: {0} ", al.Capacity);
            Console.WriteLine("Count: {0}", al.Count);

            Console.Write("Content: ");
            foreach (int i in al)
            {
                Console.Write(i + " ");
            }

            Console.WriteLine();
            Console.Write("Sorted Content: ");
            al.Sort();
            foreach (int i in al)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();
            Console.ReadKey();
        }
    }
}

當上述程式碼被編譯並執行時,它產生以下結果:

Adding some numbers:
Capacity: 8
Count: 8
Content: 41 70 133 56 120 213 90 111
Sorted Content: 41 56 70 90 111 120 133 213