在C#中初始化字典的最聪明方法

时间:2019-04-09 09:18:15

标签: c#

有没有更聪明的方式来定义这样的字典:

类字段定义:

public Dictionary<string, object> paramList { get; set; }

稍后访问:

dt.paramList = new Dictionary<string, object> { { "id", rt_id }, { "gen", rt_gen }, { "rtext", rchar } };

dt.paramList = { { "id", rt_id }, { "gen", rt_gen }, { "rtext", rchar } };

...第二学期有效。否,尽管可以通过以下方式初始化数组:

int[,] b = { { 0,1}, { 1,1} };

1 个答案:

答案 0 :(得分:0)

dt.paramList = { { "id", rt_id }, { "gen", rt_gen }, { "rtext", rchar } };行的含义是明确的。这可能意味着我们应该尝试为Dictionary<string, object>属性分配一个二维数组。如果编译器是“智能”的并且将其解释为字典,则当该语句还有其他可能的含义时,编译器可以说是您的代码的合著者。这可能会引入意外错误:)

C#中Arrray初始化的语法是一种(从某种程度上)继承自C的特殊情况。对更复杂的对象进行假设更加困难。

而且,两者都不允许数组初始化:

public int[,] paramList { get; set; }
...
paramList  = { { 0,1}, { 1,1} };

您必须写:

x.paramList  = new [,]{ { 0,1}, { 1,1} };