C#中Array与ArrayList的区别
2010-04-01 20:08 .金楽. 阅读(366) 评论(0) 收藏 举报主要区别:
一、Array的用法与数组几乎一样,可以看做是数组。在定义的时候需要指定长度;ArrayList的用法与普通集合一样,定义的时候不需要指定长度;
如:Array[] animalArray = new Array[2];
ArrayList animalArrayList = new ArrayList();
二、Array对象在获得元素个数时通过数组的获得方式(Length属性):animalArray.Length;ArrayList对象在获得元素个数时通过集合的获得方式(Count属性):animalArrayList.Count;
三、为Array对象赋值时,通过下标的访问方式:animalArray[1] = new Chicken("鸡鸡一");Array对象通过集合添加的方式赋值:animalArrayList.Add(new Chicken("鸡鸡二"));
以下是针对Array与ArrayList的一个例子,其中包括一个基类Animal和两个继承类Chicken、Cow;当然主要的代码和功能在Program中。这几个类的代码分别为:
Animal类:
using System;
using System.Collections.Generic;
using System.Text;
namespace AnimalConsole
{
    public abstract class Animal
    {
        protected string name;
        public string Name
        {
            get 
            {
                return name;
            }
            set
            {
                name = value;
            }
        }
        public Animal()
        {
            name = "没名字的动物!";
        }
        public Animal(string newName)
        {
            name = newName;
        }
        public void Feed()
        {
            Console.WriteLine("“{0}” 已经被喂养!",name);
        }
    }
}
Chicken类:
using System;
using System.Collections.Generic;
using System.Text;
namespace AnimalConsole
{
    public class Chicken : Animal
    {
        public void LayEgg()
        {
            Console.WriteLine("“{0}” 已经下了一个蛋!",name);
        }
        public Chicken(string newName) : base(newName)
        {
        }
    }
}
Cow类:
using System;
using System.Collections.Generic;
using System.Text;
namespace AnimalConsole
{
    public class Cow : Animal
    {
        public void Milk()
        {
            Console.WriteLine("“{0}” 已经被喂奶!",name);
        }
        public Cow(string newName) : base(newName)
        {
        }
    }
}
Program类:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
namespace AnimalConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("创建一个 Array 类列表集合对象并使用它:");
            Animal[] animalArray = new Animal[2];
            Cow myCow1 = new Cow("牛牛一");
            animalArray[0] = myCow1;
            animalArray[1] = new Chicken("鸡鸡一");
            foreach (Animal myAnimal in animalArray)
            {
                Console.WriteLine("动物 “{0}” 已经添加到 Array 类列表集合中,名叫 “{1}”",myAnimal.ToString(),myAnimal.Name);
            }
            Console.WriteLine("Array 类列表集合包含 {0} 个对象。",animalArray.Length);
            animalArray[0].Feed();
            ((Chicken)animalArray[1]).LayEgg();
            Console.WriteLine();
            Console.WriteLine("创建一个 ArrayList 类列表集合对象并使用它:");
            ArrayList animalArrayList = new ArrayList();
            Cow myCow2 = new Cow("牛牛二");
            animalArrayList.Add(myCow2);
            animalArrayList.Add(new Chicken("鸡鸡二"));
            foreach (Animal myAnimal in animalArrayList)
            {
                Console.WriteLine("动物 “{0}” 已经添加到ArrayList类列表集合中,名叫 “{1}”",myAnimal.ToString(),myAnimal.Name);
            }
            Console.WriteLine("ArrayList 类列表集合包含 {0} 个对象。",animalArrayList.Count);
            ((Animal)animalArrayList[0]).Feed();
            ((Chicken)animalArrayList[1]).LayEgg();
            Console.WriteLine();
            Console.WriteLine("ArrayList 的附加操作:");
            animalArrayList.RemoveAt(0);
            ((Animal)animalArrayList[0]).Feed();
            animalArrayList.AddRange(animalArray);
            ((Chicken)animalArrayList[2]).LayEgg();
            Console.WriteLine("名叫 “{0}” 的动物的索引为 {1}。",myCow1.Name,animalArrayList.IndexOf(myCow1));
            myCow1.Name = "牛牛三";
            Console.WriteLine("这个动物现在叫: “{0}”",((Animal)animalArrayList[1]).Name);
            Console.ReadKey();
        }
    }
}
                    
                
                
            
        
浙公网安备 33010602011771号