如何将NameValueCollection转换为哈希表

本文关键字:哈希表 转换 NameValueCollection | 更新日期: 2023-09-27 17:49:24

我有一个NameValueCollection对象,我需要将其转换为Hashtable对象,最好在一行代码中。我怎样才能做到这一点呢?

如何将NameValueCollection转换为哈希表

您应该考虑使用泛型Dictionary,因为它是强类型的,而Hashtable不是。试试这个:

NameValueCollection col = new NameValueCollection();
col.Add("red", "rouge");
col.Add("green", "verde");
col.Add("blue", "azul");
var dict = col.AllKeys
              .ToDictionary(k => k, k => col[k]);

EDIT:根据您的评论,要获得HashTable,您仍然可以使用上述方法并再添加一行。你可以让它在一行中工作,但两行更可读。

Hashtable hashTable = new Hashtable(dict);

交替使用pre-。. NET 3.5使用循环的方法是:

Hashtable hashTable = new Hashtable();
foreach (string key in col)
{
    hashTable.Add(key, col[key]);
}

多一行,但很简单

NameValueCollection nv = new NameValueCollection();
Hashtable hashTable = new Hashtable();
nv.Add("test", "test");
foreach (string key in nv.Keys)
{
    hashTable.Add(key, nv[key]);
}

按预期编译并执行