C# 如何初始化使用命名参数的“HashTable”对象?

C# 如何初始化使用命名参数的“HashTable”对象?,c#,visual-studio-2010,initialization,hashtable,named-parameters,C#,Visual Studio 2010,Initialization,Hashtable,Named Parameters,我们可以使用下面的语法初始化哈希表对象 var listTinhThanh = new System.Collections.Hashtable() { { "key", someObject } }; 我希望以以下方式使用代码: var listTinhThanh = new System.Collections.Hashtable() { { Key:"key", Value:someObject } }; 但这不起作用。你有解决办法吗?没有,没有解决办法。这种语法在

我们可以使用下面的语法初始化哈希表对象

var listTinhThanh = new System.Collections.Hashtable()
{ 
    { "key", someObject }
};
我希望以以下方式使用代码:

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

但这不起作用。你有解决办法吗?

没有,没有解决办法。这种语法在C中不可能存在,因为:。第一个对我来说似乎更短,我想知道你为什么需要第二个

尽管如此,我还是建议您使用强类型而不是。你能得到的最接近的结果是:

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

不,没有解决办法。这种语法在C中不可能存在,因为:。第一个对我来说似乎更短,我想知道你为什么需要第二个

尽管如此,我还是建议您使用强类型而不是。你能得到的最接近的结果是:

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

1为什么是哈希表而不是字典?2为什么你更喜欢第二种语法?请注意:为什么不使用字典而不是哈希表?{{blah,1}}实际上只是.Addblah,1的糖。关于HashTable,你在运行.NET1.0吗?@CodeInChaos,Al-Keep:我真的不知道。我只是在谷歌上搜索一下,有人建议我在需要命名索引集合时使用Hashtable。不确定两个哈希表与Dictionary@ChodeInChaos:我更喜欢第二种语法,因为它对我来说更容易阅读。1为什么是哈希表而不是字典?2为什么你更喜欢第二种语法?请注意:为什么不使用字典而不是哈希表?{{blah,1}}实际上只是.Addblah,1的糖。关于HashTable,你在运行.NET1.0吗?@CodeInChaos,Al-Keep:我真的不知道。我只是在谷歌上搜索一下,有人建议我在需要命名索引集合时使用Hashtable。不确定两个哈希表与Dictionary@ChodeInChaos:我更喜欢第二种语法,因为它对我来说更容易阅读。尝试这种语法时,我得到了一个错误:名称“Value”在当前上下文中不存在,名称“Key”在当前上下文中不存在。@Nam Gi VU,这是LINQ。您需要引用System.Core程序集并包含System.Linq命名空间。尝试此操作时,我遇到了一个错误:名称“Value”在当前上下文中不存在,名称“Key”在当前上下文中不存在。@Nam Gi VU,这是Linq。您需要引用System.Core程序集并包含System.Linq命名空间。