当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。