ArrayList简单范例代码

 

 1. ArrayList对值类型的操作

   

//ArayList对值类型的操作
    class Program
{
static void Main( string[] args)
{
//ArrayList与数组没多大的区别 优点在于不像数组需规定长度 缺点是数据类型不限制 什么类型数据都可以放入 这样会出现许多错误 ArrayList arylist = new ArrayList();
//ArrayList添加 arylist.Add(1000);
//arylist.Add("张三");//参数类型为object 所以可以添加多种类型的参数 取出时同样需要类型转换 arylist.Add(3000); arylist.Add(4000); //发生装箱操作 将值类型转换引用类型 arylist.Add(5000);
int [] arr = { 1, 2, 3, 4 }; arylist.AddRange(arr); //AddRange参数是实现了ICollections接口的对象 可以一次性添加数组、array、ArrayList等实现接口的对象
//集合中元素个数 使用Count = 数组Length Console.WriteLine("集合内容长度" + arylist.Count);
//Capacity为集合的容量 是可变的 一般*2增长 Console.WriteLine(arylist.Capacity);
//访问集合第一个元素 int firstlist = Convert.ToInt32(arylist[0]); Console.WriteLine(firstlist.ToString());
//ArrayList遍历 int sum2 = 0; for (int i = 0; i < arylist.Count; i++)
{
//sum2 += Convert.ToInt32(arylist[i]);//发生拆箱操作 Console.WriteLine(arylist[i].ToString()); } foreach (object item in arylist)
{ sum2
+= Convert .ToInt32(item); } Console .WriteLine(sum2);
//ArrayList移除 只是移除 不是删除 arylist.Remove(1000); //移除内容是1000的 Remove移除内部的某个对象 arylist.RemoveAt(1); //移除第二项 按索引移除
//注意 移除元素 ArrayList数组会重新分配索引 所以移除操作最好是倒叙移除元素 //如果移除所有的元素 直接使用Clear //arylist.Clear();
if (arylist.Contains(3000))
{ Console .WriteLine(
"包含" ); }
//ArrayList还有ToArray()但是意义不大 //这里是在ArrayList中添加值类型 那么引用类型呢????添加Student类的对象? Console .Read(); }

 

  2ArrayList对引用类型的操作

  

    //ArrayList对引用类型的操作
    class Student
{
public Student(string name, int age)
{
this .name = name; this .age = age; } private string name; public string Name
{
get
{ return name; } set
{ name
= value ; } } private int age; public int Age
{
get
{
return age; } set { age = value ; } } }
class Program
{
static void Main( string[] args)
{ Student xyy
= new Student( "小月月" , 14); Student fj = new Student( "凤姐" , 18); Student fr = new Student( "芙蓉姐姐" , 19); Student xl = new Student( "犀利哥" , 20);
ArrayList student
= new ArrayList(); student.Add(xyy); //添加: 也可以使用AddRange student.Add(fj); student.Add(fr); student.Add(xl);
//移除 //student.Remove(fj); //这里移除的就是对象 而不是值 //student.RemoveAt(1); //索引移除
//移除不掉fj 因为Remove后是object 按索引移除 //Student stu = new Student("凤姐", 18); //student.Remove(stu); //Console.WriteLine(student.Contains(stu));//false 通过索引检索 因为stu与fj地址是不一样的
//遍历 for (int i = 0; i < student.Count; i++)
{ Student s
= student[i] as Student; //因为添加前发生装箱操作 所以 现在需要拆箱 student[i]是不能点出name的 Console .WriteLine(s.Name); }
ArrayList ary
= new ArrayList(); ary.Add( "凤姐" ); ary.Add( "小月月" );
//string类同样是引用类型 但是这里有些特别 string name = "凤姐" ; Console .WriteLine(ary.Contains(name));//string比较的是内容 所以返回true //根据学生姓名 获取学生对象 虽然ArrayList可以实现 但是相当的复杂 而且效率低下 所以接下来学习HashTable Console .Read(); } }

 

posted @ 2013-03-31 09:24  C#老头子  Views(266)  Comments(0)    收藏  举报