C# 動(dòng)態(tài)數(shù)組(ArrayList)

C# 集合 C# 集合

動(dòng)態(tài)數(shù)組(ArrayList)代表了可被單獨(dú)索引的對(duì)象的有序集合。它基本上可以替代一個(gè)數(shù)組。但是,與數(shù)組不同的是,您可以使用索引在指定的位置添加和移除項(xiàng)目,動(dòng)態(tài)數(shù)組會(huì)自動(dòng)重新調(diào)整它的大小。它也允許在列表中進(jìn)行動(dòng)態(tài)內(nèi)存分配、增加、搜索、排序各項(xiàng)。

ArrayList 類的方法和屬性

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

屬性描述
Capacity 獲取或設(shè)置 ArrayList 可以包含的元素個(gè)數(shù)。
Count獲取 ArrayList 中實(shí)際包含的元素個(gè)數(shù)。
IsFixedSize獲取一個(gè)值,表示 ArrayList 是否具有固定大小。
IsReadOnly獲取一個(gè)值,表示 ArrayList 是否只讀。
Item獲取或設(shè)置指定索引處的元素。

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

序號(hào)方法名 & 描述
1public virtual int Add( object value );
在 ArrayList 的末尾添加一個(gè)對(duì)象。
2public virtual void AddRange( ICollection c );
在 ArrayList 的末尾添加 ICollection 的元素。
3public virtual void Clear();
從 ArrayList 中移除所有的元素。
4public virtual bool Contains( object item );
判斷某個(gè)元素是否在 ArrayList 中。
5public virtual ArrayList GetRange( int index, int count );
返回一個(gè) ArrayList,表示源 ArrayList 中元素的子集。
6public virtual int IndexOf(object);
返回某個(gè)值在 ArrayList 中第一次出現(xiàn)的索引,索引從零開(kāi)始。
7public virtual void Insert( int index, object value );
在 ArrayList 的指定索引處,插入一個(gè)元素。
8public virtual void InsertRange( int index, ICollection c );
在 ArrayList 的指定索引處,插入某個(gè)集合的元素。
9public virtual void Remove( object obj );
從 ArrayList 中移除第一次出現(xiàn)的指定對(duì)象。
10public virtual void RemoveAt( int index );
移除 ArrayList 的指定索引處的元素。
11public virtual void RemoveRange( int index, int count );
從 ArrayList 中移除某個(gè)范圍的元素。
12public virtual void Reverse();
逆轉(zhuǎn) ArrayList 中元素的順序。
13public virtual void SetRange( int index, ICollection c );
復(fù)制某個(gè)集合的元素到 ArrayList 中某個(gè)范圍的元素上。
14public virtual void Sort();
對(duì) ArrayList 中的元素進(jìn)行排序。
15public virtual void TrimToSize();
設(shè)置容量為 ArrayList 中元素的實(shí)際個(gè)數(shù)。

實(shí)例

下面的實(shí)例演示了動(dòng)態(tài)數(shù)組(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(45);
            al.Add(78);
            al.Add(33);
            al.Add(56);
            al.Add(12);
            al.Add(23);
            al.Add(9);
            
            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();
        }
    }
}

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

Adding some numbers:
Capacity: 8
Count: 7
Content: 45 78 33 56 12 23 9
Content: 9 12 23 33 45 56 78    

C# 集合 C# 集合