最简洁的方法来初始化C#哈希表

时间:2009-05-08 18:19:20

标签: c# hashtable

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

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

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

1 个答案:

答案 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#团队以如此好奇的方式实施此语言扩展(一旦您阅读了问题的优秀答案,会发现它很有意义。)