【发布时间】:2010-10-24 21:02:41
【问题描述】:
C# 是否允许在单行表达式中填充哈希表?我正在考虑类似于以下 Python 的东西:
mydict = {"a": 23, "b": 45, "c": 67, "d": 89}
换句话说,是否可以将每个键值对设置在单独的表达式中?
【问题讨论】:
C# 是否允许在单行表达式中填充哈希表?我正在考虑类似于以下 Python 的东西:
mydict = {"a": 23, "b": 45, "c": 67, "d": 89}
换句话说,是否可以将每个键值对设置在单独的表达式中?
【问题讨论】:
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# 团队以如此奇怪的方式实现了此语言扩展(一旦您阅读了该问题的出色答案,您将看到这很有意义)。
【讨论】:
Dictionary<string, Dictionary<string,decimal>>?