码迷,mamicode.com
首页 > Windows程序 > 详细

C#学习笔记(八)——集合、比较和转换

时间:2014-12-14 23:57:55      阅读:418      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   os   使用   sp   

一、集合

** System.Collections名称空间中的几个接口提供了基本的集合功能

bubuko.com,布布扣

Ps:这里看成一个动态的链表,但是已经完美的封装好了。

一、使用集合

1、代码示例

(1)Animal.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Exercise
{
    public abstract class Animal
    {
        protected string name;

        public string Name
        {
            get
            {
                return name;
            }
            set
            {
                name = value;
            }
        }

        public Animal()
        {
            name = "The animal with no name";
        }
        public Animal(string newName)
        {
            name = newName;
        }

        public void Feed()
        {
            Console.WriteLine("{0} has been fed", name);
        }
    }
}

(2)Cow.cs

namespace Exercise
{
    public class Cow:Animal 
    {
        public void Milk()
        {
            Console.WriteLine("{0} has been milked.", name);
        }

        public Cow(string newName):base(newName)
        {

        }
    }
}

(3)Chicken.cs

namespace Exercise
{
    public class Chicken:Animal
    {
        public void LayEgg()
        {
            Console.WriteLine("{0} has laid an egg.", name);
        }

        public Chicken(string newName):base(newName)
        {

        }
    }
}
(4)Program.cs

namespace Exercise
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Create an Array type collection of Animal " + "objects and use it:");

            Animal[] animalAraay = new Animal[2];
            Cow myCowl = new Cow("Deirdre");
            animalAraay[0] = myCowl;
            animalAraay[1] = new Chicken("Ken");

            foreach(Animal myAnimal in animalAraay)
            {
                Console.WriteLine("New {0} object added to Array collection, " + "Name = {1}", myAnimal.ToString(), myAnimal.Name);
            }

            Console.WriteLine("Array collection contains {0} objects.", animalAraay.Length);
            animalAraay[0].Feed();
            ((Chicken)animalAraay[1]).LayEgg();
            Console.WriteLine();
            Console.ReadKey();

            Console.WriteLine("Create an ArrayList type collection of Animal " + "object and use it ");
            ArrayList animalArrayList = new ArrayList();
            Cow mycow2 = new Cow("Heylay");
            animalArrayList.Add(mycow2);
            animalArrayList.Add(new Chicken("Roy"));

            foreach(Animal myAnimal in animalArrayList)
            {
                Console.WriteLine("New {0} object added to ArrayList collection," + "Name = {1}", myAnimal.ToString(), myAnimal.Name);
            }
            Console.WriteLine("ArrayList collection contains {0} objects.", animalArrayList.Count);
            ((Animal)animalArrayList[0]).Feed();
            ((Chicken)animalArrayList[1]).LayEgg();
            Console.WriteLine();

            Console.WriteLine("Additional manipulation of ArrayList:");
            animalArrayList.RemoveAt(0);
            ((Animal)animalArrayList[0]).Feed();
            animalArrayList.AddRange(animalAraay);
            ((Chicken)animalArrayList[2]).LayEgg();
            Console.WriteLine("The animal called {0} is at index {1}.", myCowl.Name, animalArrayList.IndexOf(myCowl));
            myCowl.Name = "Janice";
            Console.WriteLine("The animal is now called {0}.", ((Animal)animalArrayList[1]).Name);
            Console.ReadKey();

        }
    }
}

2、运行结果

bubuko.com,布布扣

3、注意点:

(1)ArrayList创建时不需要指定初始长度值。但是Array是需要的。

(2)对于ArrayList是不强调类型的一个集合,所以再采用所属对象的方法之类的时候,必须进行强制类型转换,而对于Array来说,他是强调对象类型的集合,所以可以直接调用其方法,但是对于其派生类来说,还是需要进行强制类型转换。

(3)还有些删除(at)和扩展方法(AddRange)之类的扩展方法

(4)ArrayList需要加上using System.Collections;名字空间的引用,切记切记。

C#学习笔记(八)——集合、比较和转换

标签:style   blog   http   io   ar   color   os   使用   sp   

原文地址:http://www.cnblogs.com/BlueMountain-HaggenDazs/p/4163172.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!