如何将NameValueCollection转换为Hashtable

Mar*_*oVW 11 .net c# .net-3.5

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

Ahm*_*eed 19

您应该考虑使用泛型,Dictionary因为它是强类型的,而a 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]);
Run Code Online (Sandbox Code Playgroud)

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

Hashtable hashTable = new Hashtable(dict);
Run Code Online (Sandbox Code Playgroud)

或者,使用循环的pre -.NET 3.5方法将是:

Hashtable hashTable = new Hashtable();
foreach (string key in col)
{
    hashTable.Add(key, col[key]);
}
Run Code Online (Sandbox Code Playgroud)