正文

ArrayList 解释与常用方法 示例2008-08-08 00:51:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yzrj/37411.html

分享到:

using System;
using System.Collections;

 

    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Person scott = new Person("Scott", "Hanselman");
            Person bill = new Person("Bill", "Evjen");
            Person srini = new Person("Srinivasa", "Sivakumar");

            //ArrayList 包含着Person对象,实际还包括Object对象,也就是Arraylist还包括其他类对象
            //固,下面要进行强制转换系统才知道他是什么类型
            ArrayList people = new ArrayList();
            people.Add(scott);
            people.Add(bill);
            people.Add(srini);

            Response.Write("<font color=blue>We used foreach.</font><BR/>");
            foreach (Person p in people)
            {
                Response.Write(p.FullName + "<BR/>");
            }

            Response.Write("<font color=red>Sort...</font><BR/>");
            people.Sort();

            Response.Write("<font color=blue>We used foreach.</font><BR/>");
            foreach (Person p in people)
            {
                Response.Write(p.FullName + "<BR/>");
            }

            //在数组people中索引
            Person scott2 = new Person("Scott", "Hanselman");
            int indexOfScott2 = people.IndexOf(scott2);
            Response.Write("<font color=red>indexof " + indexOfScott2 + "</font><BR/>");

            //对已排序的搜索
            int indexOfEquivalentScott = people.BinarySearch(scott2);
            Response.Write("<font color=red>BinarySearch " + indexOfEquivalentScott +
            "</font><BR/>");

            Response.Write("<font color=blue>We used a for loop.</font><BR/>");
            for (int i = 0; i < people.Count; i++)
            {
                //将Arraylist对象people对象进行强制转换成Peoson
                Response.Write(((Person)people[i]).FullName + "<BR/>");
            }
        }
    }

public class Person : IComparable
{
    string FirstName;
    string LastName;

    public Person(string first, string last)
    {
        FirstName = first;
        LastName = last;
    }

    public string FullName
    {
        get
        {
            return FirstName + " " + LastName;
        }
    }

    int IComparable.CompareTo(object obj)
    {
        //as 表示  后面接的是要转化成的   type,   比方说  
       //int   i   =   18;  
      //object   j   =   i   as   object;  
     //这样i就被从int类型隐含转换成一个object类型  
    // 也可以写成   object   j   =   (object)i;  


        //将object类型转化为类类型
        Person p2 = obj as Person;
        if (p2 == null) throw new ArgumentException("Object is not a Person!");

        int lastNameResult = this.LastName.CompareTo(p2.LastName);

        if (lastNameResult == 0)
        {
            int firstNameResult = this.FirstName.CompareTo(p2.FirstName);
            return firstNameResult;
        }
        else
        {
            return lastNameResult;
        }
    }

}

阅读(2717) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册