ImmutableDictionary TryAdd

ImmutableDictionary有一个TryAdd方法System.Collections.Generic.CollectionExtensions(由于某种原因,我在 DotNetPeek 中找不到)

所以这编译:

ImmutableDictionary<int, int> d = ImmutableDictionary<int, int>.Empty;
bool b = d.TryAdd(1, 1);

但是我不明白它的作用是什么?它不应该返回一个新的 ImmutableDictionary 吗?


墨色风雨
浏览 196回答 2
2回答

跃然一笑

ImmutableDictionary.Add确实返回了一个带有值的新 ImmutableDictionary。您所指的扩展方法看起来像是来自这里。我不建议将此扩展方法与不可变字典一起使用,因为虽然这将编译,但您将NotSupportedException在运行时得到一个。进一步看,根据this,显式接口实现IDictionary<T,TR>.Add将简单地 throw NotSupportedException,这似乎是合适的。从源头上,void IDictionary<TKey, TValue>.Add(TKey key, TValue value)&nbsp; &nbsp;{&nbsp; &nbsp; throw new NotSupportedException();}

慕村225694

TryAdd可能绑定到IDictionary<TKey, TValue>哪个ImmutableDictionary<TKey, TValue>工具。可能它没有任何关于 a 的知识ImmutableDictionary并遵循Try...产生bool值的模式。
打开App,查看更多内容
随时随地看视频慕课网APP