【发布时间】:2019-01-02 13:27:52
【问题描述】:
我想将 null 设置为定义 int? 的键:
我的代码:
Dictionary<int?, string> dic=> Config.Where(a => a.Field == nameof(SafeFilesPath)).OrderBy(s => s.IndexOrder).ToDictionary(a => a.IndexOrder, b => b.Value);
IndexOreder 也可以是null。
它失败了。 我必须使用这个空键。 我能做什么???
我从数据库中选择所有参数。 Keys 也可以是NULL。
【问题讨论】:
-
拥有带空键的字典有什么意义?那不是 List
吗? -
@NicoRiff:因为有时候有一把钥匙,有时候我想用
NULL拥有一把钥匙 -
@Ayal 如果数据来自数据库,
NULL表示没有值,而不是NULL值。您也不能在数据库中使用Where someField = NULL。我会质疑一个数据库设计,其中一个键首先可以为空。如果您无法改进加载这些值的查询,一个好的解决方案是使用 vc74 建议的魔法值。我建议int.MinValue虽然数据库键通常是正数 -
@Ayal 如果您想在数据库中存储未知/缺失/不适用的条目(例如在查找表或维度表中),请使用众所周知的值,例如 -1 表示
Missing, -2 代表Not Applicable等 -
没有设置 NULL 值的选项 ???我想按原样放置这些值!没有神奇的价值
标签: c# dictionary