在C#中初始化没有值的字典

时间:2015-03-15 14:59:28

标签: c# dictionary

我想用密钥创建字典。例如:

Dictionary <string, double> SmplDict= new Dictionary<string, double>();
SmplDict.Add("KeyOne");
SmplDict.Add("KeyTwo");

当然,我可以使用一些预定义值进行初始化,但是这些值将被覆盖,所以我只想要现在声明的键。 我试过了

SmpDict.Add("KeyOne", null)

但它不起作用。

5 个答案:

答案 0 :(得分:2)

您不能将null值放在预期double值的位置,因为它不是引用类型而是值类型:

Dictionary <string, double>

相反,放0

SmpDict.Add("KeyOne", 0)

另一方面,如果您想保留null,请将double值标记为可为空:

Dictionary <string, double?>

答案 1 :(得分:2)

如果您希望您的值 null ,请选择可以为Value设置为可为空的类型。例如double?object等。

答案 2 :(得分:2)

如果你想放null

,你必须让它可以为空
Dictionary <string, double?> SmplDict= new Dictionary<string, double?>();

现在您可以添加null作为值:

SmpDict.Add("KeyOne", null)

答案 3 :(得分:1)

虽然double不能为null,但有一个Not-a-Number常量:

Dictionary <string, double?> SmplDict= new Dictionary<string, Double.NaN>();

您可以查看..

答案 4 :(得分:1)

Dictionary<string, double?> smplDict = new();
smplDict.Add("KeyOne", default);
smplDict.Add("KeyTwo", default);

我想提一下,这可能是您做错了什么,这是您的需要。也许您可以使用其他更合适的集合,例如:HashSet<T>