zhcn 编程语言 Golang Go 文件处理 非公開: C# ArrayList:动态数组

C# ArrayList:动态数组

在 C# 中,动态数组 (ArrayList) 表示可以单独索引的有序对象集合。动态数组基本上可以替代数组。与数组唯一的区别是动态数组可以使用索引在指定位置添加和删除指定项,并且动态数组会自动调整大小。此外,动态数组允许动态内存分配、追加、搜索、排序和列表内的其他操作。

ArrayList 类的属性

要在 C# 中创建动态数组,必须使用 ArrayList 类。下表列出了 ArrayList 类中常用的属性。

属性解释
Capacity获取或设置动态数组可以包含的元素数。
Count获取动态数组中元素的实际数量。
IsFixedSize判断动态数组是否是固定大小
IsReadOnly确定动态数组是否为只读
IsSynchronized确定对动态数组的访问是否是同步的(线程安全)。
Item[Int32]获取或设置指定索引处的元素
SyncRoot获取一个对象以同步访问动态数组

ArrayList 类的方法

下表列出了 ArrayList 类中常用的方法。

方法名称解释
public virtual int Add(object value)将对象添加到动态数组的末尾
public virtual void AddRange(ICollection c)将 ICollection 的元素添加到动态数组的末尾
public virtual void Clear()从动态数组中删除所有元素
public virtual bool Contains(object item)判断一个元素是否在动态数组中
public virtual ArrayList GetRange(int index, int count)返回一个动态数组,表示源动态数组中元素的子集。
public virtual int IndexOf(object)搜索整个动态数组并返回该对象在动态数组中第一次出现的索引。索引从 0 开始。
public virtual void Insert(int index, object value)将元素插入到动态数组中的指定索引处。
public virtual void InsertRange(int index, ICollection c)将集合中指定索引处的元素插入到动态数组中。
public virtual void Remove(object obj)从动态数组中删除指定的对象
public virtual void RemoveAt(int index)删除动态数组中指定索引处的元素
public virtual void RemoveRange(int index, int count)从动态数组中删除一系列元素
public virtual void Reverse()反转动态数组中元素的顺序
public virtual void SetRange(int index, ICollection c)将集合的元素复制到动态数组中的一系列元素。
public virtual void Sort()对动态数组中的元素重新排序
public virtual void TrimToSize()将容量设置为动态数组中的实际元素数。

有关ArrayList类的属性和方法的更多信息,请参阅官方C#文档

[示例] 下面的示例演示如何使用ArrayList 类的属性和方法。

 using System;
using System.Collections;

namespace it-kiso.com
{
    class Demo
    {
        static void Main(string[] args){
            ArrayList arr_list = new ArrayList();

            Console.WriteLine("Num1,Num2,Num3,...,Numnの形式で文字列を入力してください:");
            string str = Console.ReadLine();
            string[] strArray = str.Split(',');
            foreach(string s in strArray){
                arr_list.Add(s);
            }
          
            Console.WriteLine("Capacity: {0} ", arr_list.Capacity);
            Console.WriteLine("Count: {0}", arr_list.Count);
                    
            Console.Write("Content: ");
            foreach (string i in arr_list)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();
            Console.Write("Sorted Content: ");
            arr_list.Sort();
            foreach (string i in arr_list)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();
            Console.ReadKey();
        }
    }
} 

操作的结果将是:

Num1,Num2,Num3,…,Numn 形式で文字列を入力してください:
213,443,11,456,23,113,56,89,23
Capacity: 16
Count: 9
Content: 213 443 11 456 23 113 56 89 23
Sorted Content: 11 113 213 23 23 443 456 56 89

《C# ArrayList:动态数组》浅显易懂的讲解!您必须观看的 2 个最佳视频

C# Tutorial for Beginners 19 : ArrayList
https://www.youtube.com/watch?v=mqIuMUYPCWI&pp=ygUhIEMjIEFycmF5TGlzdDog5YuV55qE6YWN5YiXJmhsPUpB
在 C# 中,动态数组 (ArrayList) 表示可以单独索引的有序对象集合。动态数组基本上可以替代数组。与数组唯一的区别是动态数组可以使用索引在指定位置添加和删除指定项,并且动态数组会自动调整大小。此外,动态数组允许动态内存分配、追加、搜索、排序和列表内的其他操作。

ArrayList 类的属性

要在 C# 中创建动态数组,必须使用 ArrayList 类。下表列出了 ArrayList 类中常用的属性。

属性解释
Capacity获取或设置动态数组可以包含的元素数。
Count获取动态数组中元素的实际数量。
IsFixedSize判断动态数组是否是固定大小
IsReadOnly确定动态数组是否为只读
IsSynchronized确定对动态数组的访问是否是同步的(线程安全)。
Item[Int32]获取或设置指定索引处的元素
SyncRoot获取一个对象以同步访问动态数组

ArrayList 类的方法

下表列出了 ArrayList 类中常用的方法。

方法名称解释
public virtual int Add(object value)将对象添加到动态数组的末尾
public virtual void AddRange(ICollection c)将 ICollection 的元素添加到动态数组的末尾
public virtual void Clear()从动态数组中删除所有元素
public virtual bool Contains(object item)判断一个元素是否在动态数组中
public virtual ArrayList GetRange(int index, int count)返回一个动态数组,表示源动态数组中元素的子集。
public virtual int IndexOf(object)搜索整个动态数组并返回该对象在动态数组中第一次出现的索引。索引从 0 开始。
public virtual void Insert(int index, object value)将元素插入到动态数组中的指定索引处。
public virtual void InsertRange(int index, ICollection c)将集合中指定索引处的元素插入到动态数组中。
public virtual void Remove(object obj)从动态数组中删除指定的对象
public virtual void RemoveAt(int index)删除动态数组中指定索引处的元素
public virtual void RemoveRange(int index, int count)从动态数组中删除一系列元素
public virtual void Reverse()反转动态数组中元素的顺序
public virtual void SetRange(int index, ICollection c)将集合的元素复制到动态数组中的一系列元素。
public virtual void Sort()对动态数组中的元素重新排序
public virtual void TrimToSize()将容量设置为动态数组中的实际元素数。

有关ArrayList类的属性和方法的更多信息,请参阅官方C#文档

[示例] 下面的示例演示如何使用ArrayList 类的属性和方法。

 using System;
using System.Collections;

namespace it-kiso.com
{
    class Demo
    {
        static void Main(string[] args){
            ArrayList arr_list = new ArrayList();

            Console.WriteLine("Num1,Num2,Num3,...,Numnの形式で文字列を入力してください:");
            string str = Console.ReadLine();
            string[] strArray = str.Split(',');
            foreach(string s in strArray){
                arr_list.Add(s);
            }
          
            Console.WriteLine("Capacity: {0} ", arr_list.Capacity);
            Console.WriteLine("Count: {0}", arr_list.Count);
                    
            Console.Write("Content: ");
            foreach (string i in arr_list)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();
            Console.Write("Sorted Content: ");
            arr_list.Sort();
            foreach (string i in arr_list)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();
            Console.ReadKey();
        }
    }
} 

操作的结果将是:

Num1,Num2,Num3,…,Numn 形式で文字列を入力してください:
213,443,11,456,23,113,56,89,23
Capacity: 16
Count: 9
Content: 213 443 11 456 23 113 56 89 23
Sorted Content: 11 113 213 23 23 443 456 56 89

《C# ArrayList:动态数组》浅显易懂的讲解!您必须观看的 2 个最佳视频

C# Tutorial for Beginners 19 : ArrayList
https://www.youtube.com/watch?v=mqIuMUYPCWI&pp=ygUhIEMjIEFycmF5TGlzdDog5YuV55qE6YWN5YiXJmhsPUpB