首页 > 解决方案 > .net 核心中的字典

问题描述

有人可以告诉我 Dictionary<TKey,TValue>.TryAdd(TKey, TValue) 方法有什么作用吗?

至少可以说,文档很薄弱。

https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.dictionary-2.tryadd?view=netcore-2.0#Definition

我试着寻找来源:

https://github.com/dotnet/corefx/tree/master/src/System.Collections/src/System/Collections/Generic

但我找不到 Dictionary 类的来源。

标签: generics

解决方案


Dictionaryvalues基于唯一的 key. 值可以是任何东西,但键必须是唯一的。value如果您知道他们,这使得找到他们的速度非常快key

你可以把它想象成一本真正的字典。你不知道这个词的定义,但是一旦你查找这个词(按字母顺序)就很容易找到定义。

另一个例子是地址是关键的房子的描述。搜索一个特定的房子既难又慢,但如果你知道地址,它就容易又快。

当你声明一个字典时,你指定键和值的类型。使用泛型时,这是在运行时完成的,而不是在编写代码时完成的。

对于Dictionary<TKey,TValue>.TryAdd(TKey, TValue),我们的想法是首先检查key是否已经存在,value如果key不存在则只添加。如果key已经在字典中,value不会添加 (就像您不能在字典中两次使用相同的单词或在同一个城市中两次使用相同的地址)。更重要的是,该函数返回一个布尔值,告诉您该值是否已添加。这样,如果值没有添加到字典中,您就不必处理错误(异常)。

以下是一些有助于了解 .NET 细节的链接


推荐阅读