您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息

如何在C#中从HashTable中获取键值?

2024/4/17 3:09:37发布5次查看
哈希表是 c# 中的非−通用集合。它存储键−值对,类似于通用的“字典”集合。 hashtable 在 system.collections.namespace 中定义。
hashtable由键/值对组成,其中每个键都被计算为哈希码并在内部存储在不同的存储桶中。每当访问 hashtable 时,都会将该哈希码与指定键的哈希码进行匹配,从而访问相应的值。该机制优化了哈希表中的查找。
现在让我们讨论如何在 c# 中从 hashtable 获取键。
如何从哈希表中获取键?我们可以使用两种方法从哈希表中获取键。
使用 for−每个循环并通过迭代哈希表来访问键
从哈希表中检索键的集合并一一显示它们。
让我们使用示例来演示这两种方法。
使用 for-each 循环从哈希表中获取键在这种方法中,我们声明一个带有键/值对的哈希表。然后使用 for-each 循环我们显示哈希表中的键。
为了以编程方式实现这一点,我们将使用以下哈希表。
{“us, new york}{fr, paris}{uk, london}{in, mumbai}{ger, berlin}
上面的哈希表以国家代码作为键,以值作为其对应的重要城市。
如果上面的哈希表称为 citytable,那么我们使用 dictionaryentry 迭代器访问它的键,如下所示 -
foreach(dictionaryentry ele1 in citytable){ console.writeline({0}, ele1.key);
此代码将显示哈希表中的每个键。
示例 1此方法的完整工作计划如下 -
using system;using system.collections;class myhashtable { // main method static public void main() { // create a hashtable instance hashtable citytable = new hashtable(); // adding key/value pair in the hashtable using add() method citytable.add(us, new york); citytable.add(fr, paris); citytable.add(uk, london); citytable.add(in, mumbai); citytable.add(ger, berlin); //print hashtable keys console.writeline(citytable keys:); foreach(dictionaryentry ele1 in citytable){ console.writeline({0}, ele1.key); } }}
在此程序中,我们声明并定义一个名为 citytable 的哈希表,其中分别包含国家代码及其重要城市作为键/值对。使用 add() 方法向哈希表填充值后,我们启动一个 for-each 循环,该循环使用 dictionaryentry 类型的迭代器“ele1”来迭代 citytable。然后对于每次迭代,都会打印键值。
输出citytable keys:frusingeruk
正如我们所见,输出中仅显示了 citytable 的键。这是最常见的方法,因为我们主要使用 for-each 循环来显示任何集合或数组的内容。
我们可以稍微修改上面的程序,让它显示给定键对应的值。
为此,我们必须在迭代循环中进行以下更改。
foreach(dictionaryentry ele1 in citytable){ console.writeline({0} = {1}, ele1.key, ele1.value);
在上面的代码中,我们现在还打印迭代计数器的值部分。
示例 2此修改的完整程序如下 -
using system;using system.collections;class myhashtable { // main method static public void main() { // create a hashtable instance hashtable citytable = new hashtable(); // adding key/value pair in the hashtable using add() method citytable.add(us, new york); citytable.add(fr, paris); citytable.add(uk, london); citytable.add(in, mumbai); citytable.add(ger, berlin); //print hashtable keys console.writeline(citytable keys:); foreach(dictionaryentry ele1 in citytable){ console.writeline({0} = {1}, ele1.key, ele1.value); } }}
输出citytable keys:fr = parisus = new yorkin = mumbaiger = berlinuk = london
因此,这里我们显示了 citytable 的键/值对。
让我们继续下一个方法。
使用集合在这种方法中,我们首先使用集合从 hashtable 获取键的集合,然后打印这些键。键被打印为字符串值,这些值只不过是集合的元素。
让我们以编程语言的哈希表为例。
{cpp, c++}{cs, c#}{java, java}{pl, perl}{js, javascript}
我们在程序中将上面的表定义为哈希表,langtable。然后我们声明一个 icollection 对象“keys”并收集该对象中的哈希表键。
icollection keys = langtable.keys;
一旦我们获得了键集合,我们就可以轻松地迭代该集合并将每个键显示为字符串。
foreach (string k in keys){ console.writeline(k);}
这样,我们就可以单独显示哈希表中的每个键。
示例此处给出了此方法的完整程序。
using system;using system.collections;class myhashtable { // main method static public void main() { // create a hashtable instance hashtable langtable = new hashtable(); // adding key/value pair in the hashtable using add() method langtable.add(cpp, c++); langtable.add(cs, c#); langtable.add(java, java); langtable.add(pl, perl); langtable.add(js, javascript); //collection of hashtable keys icollection keys = langtable.keys; console.writeline(language keys:); foreach (string k in keys){ console.writeline(k); } console.readkey(); }}
正如已经讨论的,上面的程序包含一个编程语言的哈希表,其中语言代码作为键,它们的名称作为值。我们首先使用 icollection 对象从哈希表中检索键的集合。然后我们迭代这个对象并一一显示键。
输出language keys:pljscsjavacpp
因此程序显示哈希表的语言代码(键)。同样,如果我们想要每个键对应的值,我们可以通过使用给定键访问哈希表来打印它。我们将这个修改留给读者。
因此,我们可以使用上面讨论的两种方法中的任何一种从哈希表中获取(访问)哈希表键。虽然这两种方法都很简单,但我们主要使用第一种方法,即对大多数集合使用 for-each 循环来迭代哈希表。
在后续文章中,我们将讨论更多可以在 c# 中执行的 hashtable 操作。
以上就是如何在c#中从hashtable中获取键值?的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录