1

我们可以使用下面的语法创建一个HashTable对象。如何初始化一个使用命名参数的HashTable对象?

var listTinhThanh = new System.Collections.Hashtable() 
{ 
    { "key", someObject } 
}; 

我想使用的代码中的这样一种方式:

var listTinhThanh = new System.Collections.Hashtable() 
{ 
    { Key:"key", Value:someObject } 
}; 

但不起作用。你有任何解决方法吗?

+1

1)为什么HashTable不是字典? 2)为什么你更喜欢第二种语法? – CodesInChaos 2011-01-24 11:06:15

+0

只需要注意一点:为什么不使用Dictionary <>而不是Hashtable? – 2011-01-24 11:06:17

回答

5

不,没有解决方法。由于:,这样的语法不可能存在于C#中。也是第一个似乎更短,我想知道为什么你需要第二个。

这就是说我会建议你使用强类型Dictionary<TKey, TValue>而不是Hashtable。您可以得到最接近的是这样的:

var listTinhThanh = new[] 
{ 
    new { Key = "key1", Value = someObject1 }, 
    new { Key = "key2", Value = someObject2 }, 
    new { Key = "key3", Value = someObject3 }, 
}.ToDictionary(x => x.Key, x => x.Value);