为了账号安全,请及时绑定邮箱和手机立即绑定

ImmutableDictionary TryAdd

ImmutableDictionary TryAdd

C#
墨色风雨 2021-11-28 18:42:35
ImmutableDictionary有一个TryAdd方法System.Collections.Generic.CollectionExtensions(由于某种原因,我在 DotNetPeek 中找不到)所以这编译:ImmutableDictionary<int, int> d = ImmutableDictionary<int, int>.Empty; bool b = d.TryAdd(1, 1);但是我不明白它的作用是什么?它不应该返回一个新的 ImmutableDictionary 吗?
查看完整描述

2 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

ImmutableDictionary.Add确实返回了一个带有值的新 ImmutableDictionary。您所指的扩展方法看起来像是来自这里。


我不建议将此扩展方法与不可变字典一起使用,因为虽然这将编译,但您将NotSupportedException在运行时得到一个。


进一步看,根据this,显式接口实现IDictionary<T,TR>.Add将简单地 throw NotSupportedException,这似乎是合适的。


从源头上,


void IDictionary<TKey, TValue>.Add(TKey key, TValue value)   

{

    throw new NotSupportedException();

}


查看完整回答
反对 回复 2021-11-28
?
慕村225694

TA贡献1880条经验 获得超4个赞

TryAdd可能绑定到IDictionary<TKey, TValue>哪个ImmutableDictionary<TKey, TValue>工具。可能它没有任何关于 a 的知识ImmutableDictionary并遵循Try...产生bool值的模式。


查看完整回答
反对 回复 2021-11-28
  • 2 回答
  • 0 关注
  • 195 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信