初始化 C# 哈希表的最简洁方法 [重复]
Posted
技术标签:
【中文标题】初始化 C# 哈希表的最简洁方法 [重复]【英文标题】:Most concise way to initialize a C# hashtable [duplicate] 【发布时间】:2010-10-24 21:02:41 【问题描述】:C# 是否允许在单行表达式中填充哈希表?我正在考虑类似于以下 Python 的东西:
mydict = "a": 23, "b": 45, "c": 67, "d": 89
换句话说,是否可以将每个键值对设置在单独的表达式中?
【问题讨论】:
【参考方案1】:C# 3 有一个名为 collection initializers 的语言扩展,它允许您在一个语句中初始化一个集合的值。
这是一个使用Dictionary<,>
的示例:
using System;
using System.Collections.Generic;
class Program
static void Main()
var dict = new Dictionary<string, int>
"a", 23, "b", 45, "c", 67, "d", 89
;
C# 3 编译器和任何实现IEnumerable
并具有公共Add
方法的类型都支持此语言扩展。
如果您有兴趣,我建议您阅读this question I asked here on *** 以了解为什么 C# 团队以如此奇怪的方式实现了此语言扩展(一旦您阅读了该问题的出色答案,您将看到这很有意义)。
【讨论】:
是否有类似的语法来定义多层次的字典?例如,Dictionary<string, Dictionary<string,decimal>>
?
我找到了这项技术,并将其作为编辑添加到您的答案中,虽然它有点罗嗦,不确定它是否能节省很多时间。以上是关于初始化 C# 哈希表的最简洁方法 [重复]的主要内容,如果未能解决你的问题,请参考以下文章