C# 中的 HybridDictionary.Contains(Object) 方法

2024 年 8 月 29 日 | 4 分钟阅读

在本文中,我们将讨论 C# 中的 "HybridDictionary.Contains(Object)" 方法及其语法、参数和示例。但在讨论 "HybridDictionary.Contains(Object)" 方法之前,我们必须了解 C# 中的 HybridDictionary 类。

什么是 HybridDictionary 类?

当字典中的元素数量不确定时,应使用 HybridDictionary 类。它使用哈希表和链表作为数据结构。为了实现 IDictionary,它对大型集合使用 Hashtable,对小型集合使用 ListDictionary。

HybridDictionary 类的属性

C# 中 HybridDictionary 类的几个属性如下

  1. 在字典的元素数量不确定时,建议使用此类。
  2. 如果集合的初始大小超过 ListDictionary 的最佳大小,则集合保存在哈希表中,以避免将元素从 ListDictionary 复制到 哈希表 的开销。
  3. 值可以为 null,但键不能为 null。

什么是 HybridDictionary.Contains(Object) 方法?

C# HybridDictionary.Contains(Object) 方法用于确定给定键是否存在于 HybridDictionary 中。它接受一个表示要检查的键的对象参数,并返回一个布尔值,指示键是否存在于字典中。

异常:如果键为 null,则该方法会引发 ArgumentNullException

语法

它具有以下语法:

a) 可见性修饰符

public:它表示可以从声明它的类外部访问该方法。它可以从任何地方调用。

b) 返回类型

bool:它表示方法返回值的类型。在此例中,Contains 方法返回一个布尔结果(true 或 false),表示指定键是否存在于集合中。

c) 方法名称

Contains:它是方法的名称。它表示该方法用于确定集合中是否存在特定键。

d) 参数

(object key):它表示该方法接受的参数。它期望一个名为 key 的对象参数,该参数表示需要检查的集合的键。对象类型允许灵活地传递给方法的键的类型。

性能

  • Contains 方法的性能取决于字典中元素的数量。
  • Contains 方法为基于哈希的存储提供常数时间性能,因为其时间复杂度为 O(1)
  • 基于列表的存储的时间复杂度为 O(n),其中 'n' 是字典元素的数量。

HybridDictionary.Contains() 方法的使用

  • 为了在访问或修改其关联值之前验证特定键是否存在,开发人员经常使用 Contains 方法。
  • 此方法有助于避免在尝试访问字典中不存在的键时可能发生的异常。

示例 1

我们来看一个示例来演示 C# 中的 HybridDictionary.Contains(Object) 方法。

输出

1 Mogili
2 Mahesh
3 Rajin
4 Pavan
HybridDictionary contains key '4': True
HybridDictionary contains key 'Apple': False

说明

  • 该代码演示了如何使用 HybridDictionary这是一个结合了哈希表的快速和多功能性以及列表字典的灵活性的集合。
  • 它用键值对填充字典并检查键。
  • 它遍历字典以打印每个键值对。
  • 输出中显示了 my_Dictionary 中的键值对,以及键“Apple”(在此示例中为 false)和键 4(在此示例中为 true)在 HybridDictionary 中的存在。

示例 2

我们再来看一个示例来演示 C# 中的 HybridDictionary.Contains(Object) 方法。

输出

Unhandled Exception:
System.ArgumentNullException: Value cannot be null.

说明

  • 在此示例中,代码演示了如何使用 HybridDictionary 存储键值对。
  • 它展示了如何使用 Contains 方法来确定键 "Apple""null" 是否存在。
  • 之后,循环遍历字典以输出字典中的每个键值对。
  • 由于潜在的歧义和问题,在带有检索的字典中将 "null" 用作键是不常见的,并且会引发名为 "ArgumentNullException" 的异常。
  • 之后,此示例中 null 键的存在可能是出于演示目的。