Using For Each with a Hashtable's default IEnumerator implementation (C#) : Hashtable « Collections « ASP.NET Tutorial






<%@ 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");

        Hashtable peopleHashtable = new Hashtable();
        peopleHashtable.Add("sh", scott);
        peopleHashtable.Add("be", bill);
        peopleHashtable.Add("ss", srini);

        Person found = (Person)peopleHashtable["sh"];
        Response.Write(found.FullName + "<BR/>");
        found = (Person)peopleHashtable["be"];
        Response.Write(found.FullName + "<BR/>");
        found = (Person)peopleHashtable["sh"];
        Response.Write(found.FullName + "<BR/>");

        foreach (DictionaryEntry de in peopleHashtable)
        {
            Response.Write(de.Key.ToString() + ":" + ((Person)de.Value).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)
    {
        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;
        }
    }

}








7.5.Hashtable
7.5.1.Hashtable collection
7.5.2.Retrieving Person objects from a Hashtable (C#)
7.5.3.Retrieving Person objects from a Hashtable (VB)
7.5.4.Using For Each with a Hashtable's default IEnumerator implementation (C#)
7.5.5.Using For Each with a Hashtable's default IEnumerator implementation (VB)
7.5.6.Using For Each with a Hashtable's Keys and Values member collections (C#)
7.5.7.Using For Each with a Hashtable's Keys and Values member collections (VB)