C# 程序检查哈希表中是否存在值

csharpserver side programmingprogramming

哈希表是键值对的有组织的集合,其中键按照使用哈希函数计算的键的哈希码排列。虽然键在哈希表中应该是非空且唯一的,但值可以为空且重复。

使用键访问哈希表中的元素。在 C# 中,"Hashtable"类表示哈希表集合。此类提供各种属性和方法,我们可以使用这些属性和方法执行操作并访问哈希表中的数据。

在本文中,我们将了解如何确定哈希表中是否存在特定值。

如何检查哈希表中是否存在值?

要检查哈希表中是否存在值,我们可以使用 Hashtable 类提供的"containsValue"方法。此方法返回一个布尔值,指示指定的值是否存在于哈希表中。

在继续编程示例之前,让我们先看一下该方法。

ContainsValue 方法

语法 − public virtual bool ContainsValue (object value);

说明 − 用于查找哈希表是否包含指定的值。

参数 − 位于哈希表中的值(对象)。可以为空值。

返回值  Boolean: true=> hashtable 包含具有指定值的元素。

False=> hashtable 不包含具有指定值的元素。

命名空间 - System.Collections

现在让我们看几个编程示例,检查指定的值是否存在于 hashtable 中。

示例

下面给出了第一个检查值是否存在于 hashtable 中的程序。

using System;
using System.Collections;
class Program {
   public static void Main(){
        // 创建 Hashtable
        Hashtable langCodes = new Hashtable();
        
        // 将元素添加到 Hashtable
        langCodes.Add("C++", "CPlusPlus");
        la​​ngCodes.Add("C#", "CSharp");
        la​​ngCodes.Add("Java", "Java");
        la​​ngCodes.Add("PL", "Perl");
        
        // 使用 ContainsValue 方法检查 HashTable 是否包含
        // 所需的值。
        if (langCodes.ContainsValue("CSharp"))
            Console.WriteLine("langCodes hashtable 包含 Value = CSharp");
        else
            Console.WriteLine("langCodes hashtable 不包含 Value = CSharp");
   }
}

上述程序声明了一个 langCodes 哈希表,其中包含语言代码和语言名称,分别作为键和值。接下来,我们有一个"if"结构,用于检查哈希表中是否存在值"CSharp"。如果存在,它将相应地显示消息。

输出

程序的输出如下所示。

langCodes 哈希表包含 Value = CSharp

由于哈希表中存在 value = CSharp,因此程序给出上述消息。

现在将 ContainsValue 方法的参数更改为"C#",即键而不是值。

if (langCodes.ContainsValue("C#"))

现在使用此更改执行上述程序。

输出

在这种情况下,由于哈希表中不存在值"C#",程序将返回相应的消息。因此我们将得到 −

langCodes 哈希表不包含 Value = CSharp

示例

现在让我们看看下面的例子。

using System;
using System.Collections;
class Program {
   public static void Main() {
    // 创建 Hashtable
    Hashtable NumberNames = new Hashtable();
    // 向 Hashtable 添加元素
    NumberNames.Add(1, "One");
    NumberNames.Add(3, "Three");
    NumberNames.Add(5, "Five");
    NumberNames.Add(7, "Seven");
    // 使用 ContainsValue 方法检查 HashTable 是否包含
    //所需的值。
    if (NumberNames.ContainsValue("Two"))
        Console.WriteLine("NumberNames 哈希表包含值 = Two");
    else
        Console.WriteLine("NumberNames 哈希表不包含值 = Two");
    if (NumberNames.ContainsValue("Five"))
        Console.WriteLine("NumberNames 哈希表包含值 = Five");
    else
        Console.WriteLine("NumberNames 哈希表不包含值 = Five");
   }
}

此程序有一个"NumberNames"表,其中数字作为键,其对应的名称作为值。在这里,我们首先使用"containsKey()"方法检查哈希表是否包含值 = Two。接下来,我们使用 containsKey() 方法检查值 = "Five"。 

输出

程序的输出如下所示。

NumberNames 哈希表不包含值 = Two
NumberNames 哈希表包含值 = Five

从程序中定义的哈希表中我们可以看出,它不包含值 = Two,但包含值 = Five。因此程序会适当地给出消息。

结论

因此,使用 C# 中 Hashtable 类的"containsKey()"方法,我们可以确定哈希表中是否存在具有特定值的元素。根据值是否存在,我们可以输出适当的结果,或者在程序复杂的情况下,继续执行适当的代码。

因此,当我们必须检查哈希表中是否存在指定值,然后采取适当的行动时,方法"containsKey()"就变得有用。


相关文章