dotnetlogo2久しぶりにプログラムなんぞをやってますんで、独自の型をコレクションするクラスに各種有名どころなメソッドを実装するのさえ面倒くさくなっております。
というかいまいちそこら辺のインターフェイスって消化できてなかったり。
んなもんで .NET Framework 2.0 になって何とかならんのか、ジェネリックって何なんだ、と調べておりましたら Gushwell さんのエントリー 「独自クラスでforeach を書けるようにするには」 で便利な物を見つけちゃいました。今度こそちゃんと覚えておこうっと。
/// <summary>
/// ホスト 1台を表すクラス
/// </summary>
Class Host
{
    // まぁとりあえず適当に
    private string _ipAddress = ""
    private string _hostName = "";
    private string _macAddress = "";

    public Host(string aIPAddress, string aHostName, string aMACAddress)
    {
        _ipAddress = aIPAddress;
        _hostName = aHostName;
        _macAddress = aMACAddress;
    }

    // あとはプロパティを適当に実装
}

/// <summary>
/// Host オブジェクトのコレクション クラス
/// </summary>
class Hosts : System.Collections.ObjectModel.Collection<Host> { }

/// <summary>
/// 実行側クラス
/// </summary>
class myApp
{
    public hoge()
    {
        Hosts hosts = New Hosts();
        // もうこれで hosts コレクション オブジェクトには
        // Add メソッド
        // Creal メソッド
        // Insert メソッド
        // Remove メソッド
        // RemoveAt メソッド
        // Count プロパティ
        // なんてのが勝手に実装されてる!!
        // しかも foreach もできちゃうし、キャストも必要ない!!
    }
}