當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C# ArrayList用法及代碼示例


ArrayList 表示可以單獨索引的對象的有序集合。它本質上是數組的替代品。它還允許動態內存分配、添加、搜索和排序列表中的項目。

ArrayList 類的屬性:

  • 可以隨時在數組列表集合中添加或刪除元素。
  • 不保證 ArrayList 被排序。
  • ArrayList 的容量是ArrayList 可以容納的元素數量。
  • 可以使用整數索引來訪問此集合中的元素。該集合中的索引是從零開始的。
  • 它還允許重複的元素。
  • 不支持使用多維數組作為 ArrayList 集合中的元素。

Constructors

構造函數 說明
ArrayList() 初始化 ArrayList 類的新實例,該實例為空並具有默認初始容量。
ArrayList(ICollection) 初始化 ArrayList 類的新實例,該實例包含從指定集合複製的元素,並且初始容量與複製的元素數相同。
數組列表(Int32) 初始化 ArrayList 類的新實例,該實例為空且具有指定的初始容量。

例子:


// C# code to create an ArrayList 
using System; 
using System.Collections; 
using System.Collections.Generic; 
  
class GFG { 
  
    // Driver code 
    public static void Main() 
    { 
  
        // Creating an ArrayList 
        ArrayList myList = new ArrayList(); 
  
        // Adding elements to ArrayList 
        myList.Add("Hello"); 
        myList.Add("World"); 
  
        Console.WriteLine("Count : " + myList.Count); 
        Console.WriteLine("Capacity : " + myList.Capacity); 
    } 
} 

輸出:

Count : 2
Capacity : 4

Properties

屬性 說明
Capacity 獲取或設置ArrayList可以包含的元素數量。
Count 獲取 ArrayList 中實際包含的元素數。
IsFixedSize 獲取一個值,該值指示 ArrayList 是否具有固定大小。
IsReadOnly 獲取一個值,該值指示ArrayList是否為隻讀。
IsSynchronized 獲取一個值,該值指示對 ArrayList 的訪問是否同步(線程安全)。
項目[Int32] 獲取或設置指定索引處的元素。
SyncRoot 獲取可用於同步對 ArrayList 的訪問的對象。

例子:


// C# program to illustrate the  
// ArrayList Class Properties 
using System;  
using System.Collections;  
using System.Collections.Generic;  
    
class GFG {  
    
    // Driver code  
    public static void Main()  
    {  
    
        // Creating an ArrayList  
        ArrayList myList = new ArrayList();  
    
        // Adding elements to ArrayList  
        myList.Add("A");  
        myList.Add("B");  
        myList.Add("C");  
        myList.Add("D");  
        myList.Add("E");  
        myList.Add("F");  
    
        // -------- IsFixedSize Property -------- 
          
        // To check if the ArrayList has fixed size or not  
        Console.WriteLine(myList.IsFixedSize);  
          
        // -------- IsReadOnly Property -------- 
          
        // To check if the ArrayList is read-only or not  
        Console.WriteLine(myList.IsReadOnly);  
    }  
}  

輸出:

False
False

Methods

方法 說明
Adapter(IList) 為特定 IList 創建 ArrayList 包裝器。
Add(Object) 將一個對象添加到 ArrayList 的末尾。
AddRange(ICollection) 將 ICollection 的元素添加到 ArrayList 的末尾。
二進製搜索(Int32、Int32、對象、IComparer) 使用指定的比較器在已排序的 ArrayList 的一係列元素中搜索元素,並返回該元素的從零開始的索引。
BinarySearch(Object) 使用默認比較器在整個排序的 ArrayList 中搜索元素,並返回該元素從零開始的索引。
BinarySearch(Object, IComparer) 使用指定的比較器在整個排序的 ArrayList 中搜索元素,並返回該元素的從零開始的索引。
Clear() 從 ArrayList 中刪除所有元素。
Clone() 創建 ArrayList 的淺拷貝。
Contains(Object) 確定某個元素是否在 ArrayList 中。
CopyTo(Array) 從目標數組的開頭開始,將整個 ArrayList 複製到兼容的一維數組。
複製到(數組,Int32) 從目標數組的指定索引開始,將整個 ArrayList 複製到兼容的一維數組。
複製到(Int32,數組,Int32,Int32) 從目標數組的指定索引開始,將 ArrayList 中的一係列元素複製到兼容的一維數組。
Equals(Object) 確定指定對象是否等於當前對象。
FixedSize(ArrayList) 返回具有固定大小的 ArrayList 包裝器。
FixedSize(IList) 返回具有固定大小的 IList 包裝器。
GetEnumerator() 返回整個 ArrayList 的枚舉器。
GetEnumerator(Int32,Int32) 返回 ArrayList 中一係列元素的枚舉器。
GetHashCode() 用作默認的哈希函數。
獲取範圍(Int32,Int32) 返回 ArrayList,它表示源 ArrayList 中元素的子集。
GetType() 獲取當前實例的類型。
IndexOf(Object) 搜索指定的 Object 並返回整個 ArrayList 中第一次出現的從零開始的索引。
IndexOf(對象,Int32) 搜索指定的對象並返回 ArrayList 中從指定索引延伸到最後一個元素的元素範圍內第一次出現的從零開始的索引。
IndexOf(對象,Int32,Int32) 搜索指定的對象,並返回 ArrayList 中從指定索引開始並包含指定數量的元素的元素範圍內第一個匹配項的從零開始的索引。
插入(Int32,對象) 將一個元素插入 ArrayList 中的指定索引處。
插入範圍(Int32,ICollection) 將集合的元素插入到 ArrayList 的指定索引處。
LastIndexOf(Object) 搜索指定的 Object 並返回整個 ArrayList 中最後一次出現的從零開始的索引。
LastIndexOf(對象,Int32) 搜索指定的對象並返回 ArrayList 中從第一個元素延伸到指定索引的元素範圍內最後一次出現的從零開始的索引。
LastIndexOf(對象,Int32,Int32) 搜索指定的對象,並返回 ArrayList 中包含指定數量的元素並以指定索引結束的元素範圍內最後一個匹配項的從零開始的索引。
MemberwiseClone() 創建當前對象的淺拷貝。
ReadOnly(ArrayList) 返回隻讀的 ArrayList 包裝器。
ReadOnly(IList) 返回隻讀 IList 包裝器。
Remove(Object) 從 ArrayList 中刪除第一次出現的特定對象。
刪除 (Int32) 刪除 ArrayList 指定索引處的元素。
刪除範圍(Int32,Int32) 從 ArrayList 中刪除一係列元素。
重複(對象,Int32) 返回一個ArrayList,其元素是指定值的副本。
Reverse() 反轉整個 ArrayList 中元素的順序。
反轉(Int32,Int32) 反轉指定範圍內元素的順序。
SetRange(Int32,ICollection) 將集合的元素複製到 ArrayList 中的一係列元素上。
Sort() 對整個 ArrayList 中的元素進行排序。
Sort(IComparer) 使用指定的比較器對整個 ArrayList 中的元素進行排序。
排序(Int32、Int32、IComparer) 使用指定的比較器對 ArrayList 中一係列元素中的元素進行排序。
Synchronized(ArrayList) 返回同步(線程安全)的 ArrayList 包裝器。
Synchronized(IList) 返回同步(線程安全)的 IList 包裝器。
ToArray() 將 ArrayList 的元素複製到新的對象數組。
ToArray(Type) 將 ArrayList 的元素複製到指定元素類型的新數組。
ToString() 返回表示當前對象的字符串。
TrimToSize() 將容量設置為 ArrayList 中的實際元素數。

示例 1:


// C# code to check if an element is 
// contained in ArrayList or not 
using System; 
using System.Collections; 
using System.Collections.Generic; 
  
class GFG { 
  
    // Driver code 
    public static void Main() 
    { 
  
        // Creating an ArrayList 
        ArrayList myList = new ArrayList(); 
  
        // Adding elements to ArrayList 
        myList.Add("A"); 
        myList.Add("B"); 
        myList.Add("C"); 
        myList.Add("D"); 
        myList.Add("E"); 
        myList.Add("F"); 
        myList.Add("G"); 
        myList.Add("H"); 
  
        // To check if the ArrayList Contains element "E" 
        // If yes, then display it's index, else 
        // display the message 
        if (myList.Contains("E")) 
            Console.WriteLine("Yes, exists at index " + myList.IndexOf("E")); 
        else
            Console.WriteLine("No, doesn't exists"); 
    } 
} 

輸出:

Yes, exists at index 4

示例 2:


// C# code to remove a range of 
// elements from the ArrayList 
using System; 
using System.Collections; 
using System.Collections.Generic; 
  
class GFG { 
  
    // Driver code 
    public static void Main() 
    { 
  
        // Creating an ArrayList 
        ArrayList myList = new ArrayList(10); 
  
        // Adding elements to ArrayList 
        myList.Add(2); 
        myList.Add(4); 
        myList.Add(6); 
        myList.Add(8); 
        myList.Add(10); 
        myList.Add(12); 
        myList.Add(14); 
        myList.Add(16); 
        myList.Add(18); 
        myList.Add(20); 
  
        // Displaying the elements in ArrayList 
        Console.WriteLine("The initial ArrayList: "); 
  
        foreach(int i in myList) 
        { 
            Console.WriteLine(i); 
        } 
  
        // removing 4 elements starting from index 0 
        myList.RemoveRange(0, 4); 
  
        // Displaying the modified ArrayList 
        Console.WriteLine("The ArrayList after Removing elements: "); 
  
        // Displaying the elements in ArrayList 
        foreach(int i in myList) 
        { 
            Console.WriteLine(i); 
        } 
    } 
} 

輸出:

The initial ArrayList: 
2
4
6
8
10
12
14
16
18
20
The ArrayList after Removing elements: 
10
12
14
16
18
20

參考:



相關用法


注:本文由純淨天空篩選整理自Sahil_Bansall大神的英文原創作品 C# | ArrayList Class。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。