使用给定的表 C# 在 C# 中实现 LinkedHashTable



对于学校的作业,我必须在C#中创建一个LinkedHashTable。老师给了我一个我必须使用的表接口,但我有点迷茫,不知道我是否在我的LinkedHashTable类中制作了一个HashTable/Dictionary,就好像它是一个数据成员一样,并做了任何管理来使其链接。我最初所做的是做一个:

Dictionary<Key, List<Value>> hash;

在我创建的 LinkedHashTable 类中,我实现的 get、put 和包含方法与该结构有关。这是表格界面:

interface Table<Key, Value> : IEnumerable<Key>
{
    /// <summary>
    /// Add a new entry in the hash table. If an entry with the
    /// given key already exists, it is replaced without error.
    /// put() always succeeds.
    /// (Details left to implementing classes.)
    /// </summary>
    /// <param name="k">the key for the new or existing entry</param>
    /// <param name="v">the (new) value for the key</param>
    void Put(Key k, Value v);
    /// <summary>
    /// Does an entry with the given key exist?
    /// </summary>
    /// <param name="k">the key being sought</param>
    /// <returns>true iff the key exists in the table</returns>
    bool Contains(Key k);
    /// <summary>
    /// Fetch the value associated with the given key.
    /// </summary>
    /// <param name="k">The key to be looked up in the table</param>
    /// <returns>the value associated with the given key</returns>
    /// <exception cref="NonExistentKey">if Contains(key) is false</exception>
    Value Get(Key k);
}

在测试文件中,他有这样的东西:

ht.Put("Chris", "Swiss");
try
{
foreach (String first in ht)
{
     Console.WriteLine("5");
     Console.WriteLine(first + " -> " + ht.Get(first));
}

整个foreach循环让我觉得我应该以一种这样一种方式实现我的类,即它本身就是一个LinkedHashTable,而不仅仅是某个将HashTable作为成员的类。不幸的是,我对如何做到这一点感到非常困惑。任何建议都会很好。

也许在界面上进行一些阅读可能有助于回答您的问题。您创建的某些类可能需要实现给定的接口。

http://msdn.microsoft.com/en-us/library/87d83y5b.aspx

相关内容

  • 没有找到相关文章

最新更新