LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C# ArrayList 类

admin
2024年2月8日 10:55 本文热度 44

摘要


ArrayList是一种泛型类,用于在C#中创建动态数组。它提供了很多有用的方法,可以用于添加,插入或移除元素。由于ArrayList类是在System.Collections命名空间下定义的,因此在使用它之前必须加上这个命名空间。ArrayList是.NET Framework中最常用的动态数组类之一,它是使用最广泛的类之一。

ArrayList的一个重要特点是它是动态数组。这意味着当我们向ArrayList中添加元素时,它会自动调整大小以适应这些元素。如果添加的元素超出了当前数组的大小,ArrayList会创建一个新的数组并将元素复制到新数组中。这种机制使得ArrayList可以适应各种数据集,并且可以避免不必要的内存分配。

在ArrayList中,我们可以使用以下方法添加,插入或移除元素:

  • Add:向ArrayList中添加一个元素。

  • Insert:将一个元素插入到ArrayList的特定位置。

  • Remove:从ArrayList中移除一个元素。

除此之外,ArrayList还提供了许多其他有用的方法,例如Find和IndexOf,这些方法可以用于查找元素在ArrayList中的位置。

虽然ArrayList是一种强大的数组类,但是它也有一些缺点。例如,在添加或移除元素时,ArrayList需要调整大小,这可能会导致一些性能问题。此外,在访问ArrayList中的元素时,我们只能一次获取或设置一个元素的值。这可能会导致一些不必要的复制和比较操作,从而影响程序的性能。

ArrayList是一种非常有用的类,可以帮助我们创建动态数组。尽管它有一些缺点,但是在大多数情况下,ArrayList都是一种非常实用的工具,可以提高程序的效率和灵活性。

正文


不建议将类用于 ArrayList 新开发。 相反,我们建议使用泛型 List<T> 类。 该 ArrayList 类旨在保存对象的异类集合。 但是,它并不总是提供最佳性能。 建议执行以下操作:

  • 对于对象的异类集合,请使用 List<Object> C#)  。

  • 对于对象的同质集合,请使用 List<T> 该类。

属性



Capacity获取或设置 ArrayList 可包含的元素数。
Count获取 ArrayList 中实际包含的元素数。
IsFixedSize获取一个值,该值指示 ArrayList 是否具有固定大小。
IsReadOnly获取一个值,该值指示 ArrayList 是否为只读。
IsSynchronized获取一个值,该值指示是否同步对 ArrayList 的访问(线程安全)。
Item[Int32]获取或设置指定索引处的元素。
SyncRoot获取可用于同步对 ArrayList 的访问的对象。

方法



Adapter(IList)为特定 IList 创建 ArrayList 包装。
Add(Object)将对象添加到 ArrayList 的结尾处。
AddRange(ICollection)将 ICollection 的元素添加到 ArrayList 的末尾。
BinarySearch(Int32, Int32, Object, IComparer)使用指定的比较器在已排序 ArrayList 的某个元素范围中搜索元素,并返回该元素从零开始的索引。
BinarySearch(Object)使用默认的比较器在整个已排序的 ArrayList 中搜索元素,并返回该元素从零开始的索引。
BinarySearch(Object, IComparer)使用指定的比较器在整个已排序的 ArrayList 中搜索元素,并返回该元素从零开始的索引。
Clear()从 ArrayList 中移除所有元素。
Clone()创建 ArrayList 的浅表副本。
Contains(Object)确定某元素是否在 ArrayList 中。
CopyTo(Array)从目标数组的开头开始,将整个 ArrayList 复制到兼容的一维 Array。
CopyTo(Array, Int32)从目标数组的指定索引处开始将整个 ArrayList 复制到兼容的一维 Array。
CopyTo(Int32, Array, Int32, Int32)从目标数组的指定索引处开始,将 ArrayList 中某个范围的元素复制到兼容的一维数组 Array。
Equals(Object)确定指定对象是否等于当前对象。  (继承自 Object)
FixedSize(ArrayList)返回具有固定大小的 ArrayList 包装。
FixedSize(IList)返回具有固定大小的 IList 包装。
GetEnumerator()返回用于整个 ArrayList 的枚举数。
GetEnumerator(Int32, Int32)返回 ArrayList 中元素范围的枚举器。
GetRange(Int32, Int32)返回一个 ArrayList,它表示源 ArrayList 中的元素子集。
IndexOf(Object)搜索指定的 Object,并返回整个 ArrayList 中第一个匹配项的从零开始的索引。
IndexOf(Object, Int32)搜索指定的 Object,并返回 ArrayList 中从指定索引到最后一个元素的元素范围中第一个匹配项的从零开始索引。
IndexOf(Object, Int32, Int32)搜索指定的 Object,并返回 ArrayList 中从指定索引开始,并包含指定元素数的元素范围中第一个匹配项的从零开始的索引。
Insert(Int32, Object)将元素插入 ArrayList 的指定索引处。
InsertRange(Int32, ICollection)将集合中的元素插入 ArrayList 的指定索引处。
LastIndexOf(Object)在整个 ArrayList 中搜索指定的 Object,并返回最后一个匹配项的从零开始的索引。
LastIndexOf(Object, Int32)搜索指定的 Object,并返回 ArrayList 中从第一个元素到指定索引这部分元素中最后一个匹配项的从零开始索引。
LastIndexOf(Object, Int32, Int32)搜索指定的 Object,并返回 ArrayList 中到指定索引为止包含指定元素数的这部分元素中最后一个匹配项的从零开始的索引。
ReadOnly(ArrayList)返回只读的 ArrayList 包装。
ReadOnly(IList)返回只读的 IList 包装。
Remove(Object)从 ArrayList 中移除特定对象的第一个匹配项。
RemoveAt(Int32)移除 ArrayList 的指定索引处的元素。
RemoveRange(Int32, Int32)从 ArrayList 中移除一系列元素。
Repeat(Object, Int32)返回 ArrayList,其元素是指定值的副本。
Reverse()将整个 ArrayList 中元素的顺序反转。
Reverse(Int32, Int32)将指定范围中元素的顺序反转。
SetRange(Int32, ICollection)复制 ArrayList 中一个子集合的元素。
Sort()对整个 ArrayList 中的元素进行排序。
Sort(IComparer)使用指定的比较器对整个 ArrayList 中的元素进行排序。
Sort(Int32, Int32, IComparer)使用指定的比较器对 ArrayList 中某个范围内的元素进行排序。
Synchronized(ArrayList)返回同步的(线程安全)ArrayList 包装器。
Synchronized(IList)返回同步的(线程安全)IList 包装器。
ToArray()将 ArrayList 的元素复制到新 Object 数组中。
ToArray(Type)将 ArrayList 的元素复制到新的指定元素类型数组中。


ArrayList元素的添加

private void btnAdd_Click(object sender, EventArgs e)
{
    ArrayList array = new ArrayList();
    array.Add(1);
    array.Add("张飞");
    array.Add(10.4f);
    string[] ary1 = { "hello", "world" };
    array.AddRange(ary1);
    foreach (var item in array)
    {
        MessageBox.Show(item.ToString());
    }
}

ArrayList元素的删除

private void btnDelete_Click(object sender, EventArgs e)
{
    array.RemoveAt(2);
    array.Remove("张飞");//用于移除指定元素值的第一个匹配集合元素
    foreach (var item in array)
    {
        MessageBox.Show(item.ToString());
    }
    array.RemoveRange(1, 2);//从1开始,删除2个元素
    array.Clear();//删除所有
}

ArrayList元素的查找

private void btnSearch_Click(object sender, EventArgs e){    int idx = array.IndexOf(txtSearch.Text);    MessageBox.Show(idx.ToString());    idx = array.LastIndexOf(txtSearch.Text);    MessageBox.Show(idx.ToString());}

是否包括:

var ret = array.Contains(10.4f);
MessageBox.Show(ret.ToString());


该文章在 2024/2/8 10:55:22 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved