C#允许使用单行表达式填充哈希表吗?我在思考类似于下面的Python语句:
mydict = {"a": 23, "b": 45, "c": 67, "d": 89}
换句话说,有没有一种替代方法可以在一个表达式中设置每个键值对?
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
方法。
如果你感兴趣,我建议你阅读我在StackOverflow上提出的这个问题,了解C#团队为什么以这种奇特的方式实现了这种语言扩展(一旦你阅读了这个问题的优秀回答,你会发现这种做法很有意义)。
Dictionary<string,Dictionary<string,decimal>>
? - Mason G. Zhwiti