在C#中,如果需要数组的长度和元素的个数随着程序的运行不断改变,就可以使用ArrayList类,该类是一个可以动态增减成员的数组。

一、ArrayList类与Array类的区别

ArrayList类实际上是Array类的优化版本。

ArrayList只能定义一维数组,Arrays可以定义多维数组。

ArrayList的下限始终为0,Array可以定义自己的下限。

ArrayList的元素都是object类型的,因此需要进行装箱和拆箱操作,内存分配的代价很高,而Array的元素通常是特定类型的。

ArrayList的元素个数可以自动扩展,Array的元素个数是固定的。

ArrayList具有添加、删除、插入、移动和复制等方法。

二、示例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections; // 导入ArrayList的命名空间
namespace Test
{
class Program
{
static void Main(string[] args)
{
// C#动态数组ArrayList-www.baike369.com
ArrayList alist = new ArrayList();
alist.Add("One"); // 添加对象
alist.Add(" Two");
Console.Write("给数组添加的元素:");
foreach (Object obj in alist)
{ Console.Write(obj); }
Console.WriteLine();
Console.WriteLine("实际包含的数组元素个数:" + alist.Count);
Console.WriteLine("目前能够包含的数组元素的最多个数:"+alist.Capacity);
alist.Insert(, " c#"); // 在指定的索引位置插入元素C#
Console.Write("在索引值为1的位置插入:");
foreach (Object obj in alist)
{ Console.Write(obj); }
Console.WriteLine();
Console.WriteLine("实际包含的数组元素个数:" + alist.Count);
Console.WriteLine("目前能够包含的数组元素的最多个数:"+alist.Capacity);
alist.Add("。");
Console.WriteLine("添加。");
Console.WriteLine("目前能够包含的数组元素的最多个数:"+alist.Capacity);
alist.Add("---"); // 集合容量不够时,会出现位数的变化
Console.WriteLine("添加---");
Console.WriteLine("实际包含的数组元素个数:" + alist.Count);
Console.WriteLine("目前能够包含的数组元素的最多个数:"+alist.Capacity);
// 用索引方式获取集合元素值
Console.WriteLine("3号索引的:" + alist[]);
// 利用contains方法,查找集合中是否包含“?”
Console.WriteLine("数组中是否包含?:" + alist.Contains("?"));
Console.Write("经过前面操作后的数据元素:");
foreach (Object obj in alist)
{ Console.Write(obj); }
Console.WriteLine();
Console.WriteLine("实际包含的数组元素个数:" + alist.Count);
Console.WriteLine("目前能够包含的数组元素的最多个数:"+alist.Capacity);
alist.Remove("。"); // 移除集合中的“。”元素
alist.Remove("?"); // 移除集合中的“?”元素
Console.WriteLine("没有包含?,减少1个元素,容量不变");
foreach (Object obj in alist)
{ Console.Write(obj); }
Console.WriteLine();
Console.WriteLine("实际包含的数组元素个数:" + alist.Count);
Console.WriteLine("目前能够包含的数组元素的最多个数:"+alist.Capacity);
alist.RemoveAt(); // 移除3号索引位的元素
Console.Write("移除3号索引位的元素:");
foreach (Object obj in alist)
{ Console.Write(obj); }
Console.WriteLine();
Console.WriteLine("实际包含的数组元素个数:" + alist.Count);
Console.WriteLine("目前能够包含的数组元素的最多个数:"+alist.Capacity);
alist.TrimToSize(); // 缩减容量
Console.WriteLine("目前能够包含的数组元素的最多个数:"+alist.Capacity);
alist.Clear(); // 清除ArrayList中的所有元素
Console.WriteLine("清除ArrayList中的所有元素后:");
Console.WriteLine("实际包含的数组元素个数:" + alist.Count);
Console.WriteLine("目前能够包含的数组元素的最多个数:"+alist.Capacity);
alist.TrimToSize(); // 再次缩减容量
Console.WriteLine("再次缩减容量后,能够包含的数组元素的最多个数:"
+alist.Capacity);
Console.ReadLine();
}
}
}

原博客:http://www.cnblogs.com/melao2006/p/4241678.html

最新文章

  1. PHP 5.6 编译安装选项说明
  2. ubuntu10.04编译安装LAMP
  3. iOS常用第三方开源框架和优秀开发者博客等
  4. python技巧 之文件读取
  5. Docker入门简介
  6. helper实现隐藏前台特效
  7. screen命令学习
  8. Object Pascal 控制语句
  9. phpExcel导出excel的类,每步都有说明
  10. zookeeper使用和原理探究(一)
  11. RedHat7上安装PHP
  12. rdo(remote data objects) repo openstack icehouse
  13. .net获取根目录的方法集合
  14. Spring理解IOC,DI,AOP作用,概念,理解。
  15. 选择IT事业,意味着终身学习
  16. 【转载】 pytorch笔记:06)requires_grad和volatile
  17. Spring MVC (Java),强制页面不缓存
  18. 虚拟机极简配置manjaro gnome
  19. 计算机基础part1
  20. 玩转X-CTR100 l STM32F4 l AT24C02 EEPROM存储

热门文章

  1. android monitor 汉化 ddms
  2. Python图形编程探索系列-04-网上图片与标签组件的结合
  3. BZOJ3019 : [Balkan2012]handsome
  4. JNI编程实现(Windows)
  5. 第二章 flex处理二义性
  6. Internet Explorer 11:不要再叫我IE
  7. 实战:mysql统计指定架构的全部表的数据和索引大小情况-v2
  8. ds18b20采集温度并上报服务器
  9. solr之定时增量索引实现
  10. 基础知识:什么是ASP.NET Razor页面?