文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>HashTable和Dictionary索引器的区别

HashTable和Dictionary索引器的区别

时间:2011-02-15  来源:Tecky Li

 

        // Summary:
        //     Gets or sets the value associated with the specified key.
        //
        // Parameters:
        //   key:
        //     The key whose value to get or set.
        //
        // Returns:
        //     The value associated with the specified key. If the specified key is not
        //     found, attempting to get it returns null, and attempting to set it creates
        //     a new element using the specified key.
        //
        // Exceptions:
        //   System.ArgumentNullException:
        //     key is null.
        //
        //   System.NotSupportedException:
        //     The property is set and the System.Collections.Hashtable is read-only.  -or-
        //     The property is set, key does not exist in the collection, and the System.Collections.Hashtable
        //     has a fixed size.
        public virtual object this[object key] { get; set; }
里面在Returns中明确写到,当指定的key无法找到时,返回null值。所以可以使用下面的代码片段是可取的:
            Hashtable hs = new Hashtable();
            // add some elements
            if (hs["key"] == null)
            {
                //the specified key does not found in hashtable
            }

Dictionary定义:

        // Summary:
        //     Gets or sets the value associated with the specified key.
        //
        // Parameters:
        //   key:
        //     The key of the value to get or set.
        //
        // Returns:
        //     The value associated with the specified key. If the specified key is not
        //     found, a get operation throws a System.Collections.Generic.KeyNotFoundException,
        //     and a set operation creates a new element with the specified key.
        //
        // Exceptions:
        //   System.ArgumentNullException:
        //     key is null.
        //
        //   System.Collections.Generic.KeyNotFoundException:
        //     The property is retrieved and key does not exist in the collection.
        public TValue this[TKey key] { get; set; }

注释中在Returns中明确写道当指定的Key不存在时,抛出System.Collections.Generic.KeyNotFoundException,并且自动会以当前的Key创建一个新元素。

所以在使用Dictionary时,就不能通过HashTable那样来判断一个Key是否存在,而应该使用下面的代码片段:

            Dictionary<string, string> dict = new Dictionary<string, string>();
            // add some elements
            if(!dict.ContainsKey("key"))
            {
                //the specified key does not found in dictionary
            }

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载