Mega Code Archive

 
Categories / ASP.Net Tutorial / Collections
 

Using a custom strongly typed PersonList (C#)

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs"  Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">     <title>Untitled Page</title> </head> <body>     <form id="form1" runat="server">     <div>          </div>     </form> </body> </html> 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 + "<BR/>");         }         for (int i = 0; i < people.Count; i++)         {             Response.Write(people[i].FullName + "<BR/>");         }     } } 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;         }     } }