代码之家  ›  专栏  ›  技术社区  ›  RexE

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

  •  48
  • RexE  · 技术社区  · 16 年前

    C允许在一行表达式中填充哈希表吗?我在考虑类似于下面的python的东西:

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

    换言之,在单独的表达式中设置每个键值对是否有其他选择?

    1 回复  |  直到 16 年前
        1
  •  75
  •   Community CDub    8 年前

    C 3的语言扩展名为 集合初始值设定项 它允许您在一条语句中初始化集合的值。

    下面是一个使用 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团队以一种奇怪的方式实现了这种语言扩展(一旦你阅读了这个问题的优秀答案,你就会发现它很有意义)。