c# - 什么时候在 C# 中使用字典?

标签 c# generics dictionary

我今天参加面试,面试官问什么是字典,我们什么时候应该用它?第一部分很简单,但第二部分我无法回答,我知道这是一个键值对,但我总是使用对象列表来实现我的目标。

我搜索了很多,阅读了一些文章 this , and this但我发现每个人都在回答 How 部分而不是 When 部分,所以你能帮我解决一些我应该使用 Dictionary 的场景吗?

谢谢。

最佳答案

这通常是因为搜索的复杂性。在列表中搜索是 O(n),但在字典中搜索是 O(1)。

然而,这一切都取决于其他问题 - 列表是否按键排序?如果是这样,那么搜索就是O(nlogn),字典是如何实现的呢?在最坏的情况下,即使使用字典也可以实现 O(n)。

所以一般来说,当您需要通过某个键在某个集合中进行搜索时,您会使用字典。

关于c# - 什么时候在 C# 中使用字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37969936/

相关文章:

c# - 返回字符串时 URL 帮助器方法测试失败

c# - 从数据库 SQLite C# 服务堆栈读取 SQL 数据(百万条记录)的最快方法是什么

java - 名称冲突 : The method add(Object) of type test2 has the same erasure as add(E) of type HashSet<E> but does not override it

java - hasNext 跳过 HashMap 中的第一个值

arrays - 如何查询 (String, Dictionary<String, String>) 到 UITableViewCell 中?

c# - 为什么我的 Xamarin.Forms 应用程序在从 Web API 将数据插入 SQLite 数据库后崩溃?

C# 复杂返回类型

并行类层次结构上下文中的 Java 泛型问题

c# - 在函数中动态创建或设置函数的返回类型

vba - 填充字典导致错误