【问题标题】:Most concise way to initialize a C# hashtable [duplicate]初始化 C# 哈希表的最简洁方法 [重复]
【发布时间】:2010-10-24 21:02:41
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# hashtable


    【解决方案1】:

    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&lt;string, Dictionary&lt;string,decimal&gt;&gt;?
    • 我找到了这项技术,并将其作为编辑添加到您的答案中,虽然它有点罗嗦,不确定它是否能节省很多时间。
    猜你喜欢
    • 2016-02-10
    • 2010-09-29
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    • 2017-04-25
    • 2011-05-16
    • 1970-01-01
    • 2023-03-08
    相关资源
    最近更新 更多