我们想使用键索引将项目分配/添加到字典,如下所示:
Dictionary<string, object> dict = new Dictionary<string, object>();
dict["key"] = dict["key"] ?? "object";
但它会导致:“给定的键不在字典中。 ”
有什么方法可以像我为会话分配值的方式一样,使用空合并为该字典分配值:
Session["Member"] = Session["Member"] ?? new Member();
谢谢
编辑:我实际上试图从字典的子类中覆盖索引器,但无济于事。实现 IDictionary 接口似乎太多了,因为我们只需要下面代码的功能(即,如果未找到键,则返回 null)。所以我想,也许我们可以使用如下扩展:
public static TValue [this Dictionary<TKey, TValue> thisDictionary, TKey key] {
get { return thisDictionary.ContainsKey(key) ? thisDictionary[key] : null; }
set { thisDictionary[key] = value; }
}
但它不工作甚至编译。
还有其他更简单的方法可以重用这个索引器功能吗?非常感谢。