如何使用{}将值加载到Dictionary中

时间:2013-04-24 13:12:37

标签: c# .net dictionary

是否可以使用{}?

将值加载到Dictionary中

这失败

static Dictionary<byte, byte> dict = new Dictionary<byte, byte>() { new KeyValuePair<byte, byte>(1, 1) };

这不会失败,所以我怀疑在{}

中有加载语法
static Dictionary<byte, byte> dic1252expand = new Dictionary<byte, byte>() { };

这是适用的示例语法

byte[] bytes = new byte[] { 1, 2, 3 }; 
KeyValuePair<byte, byte> kvp = new KeyValuePair<byte, byte>(1, 1);

5 个答案:

答案 0 :(得分:25)

如果你给某人一条鱼,他们就有一条鱼;如果你教他们如何捕鱼,你不需要给它们捕鱼。发布的所有答案都是正确的,但没有人告诉您如何为自己找出答案

C#中的集合初始值设定语法是“语法糖”;编写一些无聊的代码只是一种更愉快的方式。当你写:

C c = new C() { p, q, { r, s }, {t, u, v} };

就像你写的那样:

C c;
C temporary = new C();
temporary.Add(p);
temporary.Add(q);
temporary.Add(r, s);
temporary.Add(t, u, v);
c = temporary;

现在应该清楚如何弄清楚初始化器子句中的内容:查看类型并查看各种Add方法作为参数的内容。在您的情况下,字典的Add方法接受一个键和一个值,因此初始值设定项应为{ { k1, v1 }, { k2, v2 } , ... }

有意义吗?

答案 1 :(得分:12)

这是有效的:

Dictionary<byte, byte> dict = new Dictionary<byte, byte>() { { 1, 1 }, { 2, 2 } };

答案 2 :(得分:3)

Dictionary<string, string> d = new Dictionary<string, string>{{"s", "s"}};

答案 3 :(得分:1)

var dict = new Dictionary<int, int>()
    {
        { 1, 1 },
        { 2, 1 },
        { 3, 2 }
    };

这将设置一个包含三个键值对的字典。

答案 4 :(得分:1)

Dictionary<byte, byte> d = new Dictionary<byte, byte>()
                       { 
                          { 1, 2 }, 
                          { 3, 4 } 
                       };