是否可以使用{}?
将值加载到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);
答案 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 }
};