50

C# 是否允许在单行表达式中填充哈希表?我正在考虑类似于以下 Python 的东西:

mydict = {"a": 23, "b": 45, "c": 67, "d": 89}

换句话说,是否可以将每个键值对设置为单独的表达式?

4

1 回答 1

77

C# 3 有一个称为集合初始化器的语言扩展,它允许您在一个语句中初始化集合的值。

这是一个使用 a 的示例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 # 团队以如此奇怪的方式实现了这个语言扩展(一旦你阅读了这个问题的优秀答案,你会发现它会产生很多感觉)。

于 2009-05-08T18:21:33.487 回答