最简洁的方式来初始化一个C#哈希表
C#允许哈希表在单行expression式中填充吗? 我想到的东西等同于下面的Python:
mydict = {"a": 23, "b": 45, "c": 67, "d": 89}
换句话说,是否有另外一种方法将每个键值对设置在一个单独的expression式中?
C#3有一个名为集合初始化器的语言扩展,它允许你在一个语句中初始化一个集合的值。
这是一个使用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
方法的任何types都支持此语言扩展。
如果你有兴趣,我会build议你阅读这个问题,我在这里问StackOverflow , 为什么 C#团队以这样一个好奇的方式实现了这种语言扩展(一旦你读了这个问题的优秀答案,你会看到,它使很多感)。