如何将NameValueCollection转换为Hashtable

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

您应该考虑使用通用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]); 

编辑:根据您的评论,要获得HashTable,您仍然可以使用上述方法并添加一行。 你总是可以在一行中完成这项工作,但是2行更具可读性。

 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]); } 

它按预期编译和执行。