初始化 C# 哈希表的最简洁方法 [重复]

Posted

技术标签:

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

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

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

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

【问题讨论】:

【参考方案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 *** 以了解为什么 C# 团队以如此奇怪的方式实现了此语言扩展(一旦您阅读了该问题的出色答案,您将看到这很有意义)。

【讨论】:

是否有类似的语法来定义多层次的字典?例如,Dictionary&lt;string, Dictionary&lt;string,decimal&gt;&gt;? 我找到了这项技术,并将其作为编辑添加到您的答案中,虽然它有点罗嗦,不确定它是否能节省很多时间。

以上是关于初始化 C# 哈希表的最简洁方法 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

C/C++手撕哈希表详解

如何在 postgresql 中获取整个表的哈希?

用 n 个元素初始化哈希表的运行时间是多少?

Java学习笔记31(集合框架五:set接口哈希表的介绍)

数据结构:哈希表(根据数值查找的key-value容器)

哈希表的构造方法