Collections ASP.Net Tutorial

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs"  Inherits="_Default" %>



    Untitled Page


    
    

    
    

    


File: Default.aspx.cs
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("A", "B");
        Person bill = new Person("C", "D");
        Person srini = new Person("E", "F");
        PersonList people = new PersonList();
        people.Add(scott);
        people.Add(bill);
        people.Add(srini);
        foreach (Person p in people)
        {
            Response.Write(p.FullName + "
");
        }
        for (int i = 0; i < people.Count; i++)
        {
            Response.Write(people[i].FullName + "
");
        }
    }
}
public class PersonList : System.Collections.IEnumerable
{
    private ArrayList innerList = new ArrayList();
    public void Add(Person aPerson)
    {
        innerList.Add(aPerson);
    }
    public void Remove(Person aPerson)
    {
        innerList.Remove(aPerson);
    }
    public int Count
    {
        get { return innerList.Count; }
    }
    // Get/set element at given index
    public Person this[int index]
    {
        get { return (Person)innerList[index]; }
        set { innerList[index] = value; }
    }
    public IEnumerator GetEnumerator()
    {
        return innerList.GetEnumerator();
    }
}
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)
    {
        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;
        }
    }
}