C#是否允许在单行表达式中填充哈希表?我正在考虑与以下Python相当的东西:
mydict = {"a": 23, "b": 45, "c": 67, "d": 89}
换句话说,是否可以在单独的表达式中设置每个键值对?
答案 0 :(得分:75)
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 StackOverflow 为什么 C#团队以如此好奇的方式实施此语言扩展(一旦您阅读了问题的优秀答案,会发现它很有意义。)