C# 数组还是字典?

2024-04-21

我想知道 C# 数组的访问速度是否恒定?
我需要在静态数组中存储 1000 个项目,这些项目将在服务器启动期间初始化。该数组将被只读使用, 所以数组不会发生任何变化。
我应该使用简单的 C# 数组 (new MyClass[]) 还是字典?

我对 C# 非常陌生,并试图了解 C# 数组访问的工作原理。
它们的速度可以与 C++ 数组进行比较吗?


最佳选择取决于您需要如何访问元素。

如果你想通过索引访问它们,那么使用数组。 C# 中的数组具有恒定的访问速度,并且在访问速度方面与 C++ 数组非常相似。

然而,字典的访问速度非常快(物品属性 http://msdn.microsoft.com/en-us/library/9tee9ht2.aspx 方法O(1) 访问时间,但取决于存储密钥对于 GetHashCode 的实现有多好。如果您需要根据键值而不是索引查找项目,那么字典会更合适。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 数组还是字典? 的相关文章

随机推荐

  • 将 li 放在特定高度之后的下一列中

    我正在 WordPress 网站上开发导航菜单 请看一下背景图像始终与顶部对齐 https stackoverflow com questions 12456428 background image always align to top对
  • 如何在 Linux 中使用它们列出活动端口和进程,C 代码

    我正在尝试编写 C 代码来完成与以下相同的工作 netstat vatp 列出所有远程 本地地址和使用它们的进程 但我不知道我应该阅读哪些文件 我尝试调查 proc net tcp and proc net udp 但它们没有进程名称或进程
  • 如何通过过滤计算 Vaadin 8 网格页脚中的总计

    我知道我必须使用grid getDataProvider 得到ListDataProvider 假设我发送了List to grid setItems 在其他计算页脚总数中我这样做 Collection myItems ListDataPr
  • 从另一个域重定向时 Django 会话被丢弃

    当用户访问我的域时 django 会发出一个 sessionid 当他尝试使用 Facebook 进行 Oauth 时 他单击我网站上的一个按钮 该按钮会重定向到 Facebook com Facebook 重定向回我的域 但此时 用户的会
  • 在 UIImageView 上添加不透明度为 0.3 的黑色覆盖层

    我有一个 UIImageView 我想在它上面添加一个黑色覆盖层 在不必重写drawRect的情况下执行此操作的最佳方法是什么 我正在考虑在其上添加一个 CALayer 但不确定如何获得具有 0 3 alpha 的黑色 CALayer 像这
  • EF Code First 现有数据库

    首先使用 EF 4 1 代码我想停止 EF 从模型创建数据库 据我了解 如果您传递 Connectionstring 名称 它将使用该连接字符串中的现有数据库 但是 如果数据库不存在 那么它将创建数据库 将所有表形成模型
  • MYSQL DATE 函数在 LEFT JOIN 中运行速度极慢

    添加行时 LEFT JOIN core records sales as sales ON DATE appointments date DATE sales date sold 根据我的查询 它将脚本的运行时间从大约 8 秒增加到 2 3
  • 如何在manim中一个接一个地应用两个变换?

    我想申请两个线性变换矩阵一个接一个地在manimce 以下是一次转换的代码 from manim import class LT LinearTransformationScene def init self LinearTransform
  • 回调函数含义

    javascript中的回调函数是什么意思 JavaScript 的 回调 是函数对象 可以传递给其他函数 例如函数指针或委托函数 然后在函数完成时或需要时调用 例如 您可以有一个主函数 您可以向该函数传递一个它将调用的函数 主要功能可以如
  • Android Studio升级到Arctic Fox后出现奇怪的代码子窗口(2020.3.1)

    在 Android Studio 升级到 Arctic Fox 版本后 我的代码编辑器中现在出现了这些奇怪的子窗口 但我无法摆脱它们 如果我单击 2 个子窗口中的任何一个 顶部的单行窗口或下面的 5 行窗口 见下图 它会滚动到有问题的代码
  • Laravel 路由使用 nginx 覆盖 phpmyadmin 路径

    我的 LEMP Droplet 上有以下 nginx 配置 server listen 80 default server listen 80 default server ipv6only on root var www html pub
  • 在 C 中为 fgets 创建超时[重复]

    这个问题在这里已经有答案了 我的目的是创建一个 tfgets 函数 tfgets 与 fget 类似 只是它的超时时间为 1 秒 如果 1 秒内没有收到输入 则程序返回 NULL 否则 它将返回 fgets 返回的任何内容 如何为 tfge
  • Gson: [Class] 声明多个名为 [property] 的 JSON 字段

    我正在尝试使用以下 POJO 序列化为 JSONGson https github com google gson public class Member private long id private long customerAccou
  • Pytest 适用于旧的模拟,但不适用于 unittest.mock

    我正在将一些代码从 Python 2 移植到 3 并且py test玩得不好patch装饰器来自unittest mock 当我使用patch装饰器将模拟传递到测试函数的参数中 py test相反 将该参数解释为固定装置 并且无法设置测试
  • 如何在使用用户限制资源访问保护的 python eve api 中创建新用户帐户

    我首先使用 python eve 框架创建了一个 Web api 无需身份验证或用户帐户 效果非常好 我现在正在尝试添加身份验证和用户帐户 但遇到了一些困难 我想使用用户限制的资源访问 但是如果资源受到限制 用户如何创建新的用户帐户 我缺少
  • 如何从数据库中删除字段?

    当我单击该图标时 所单击的新闻字段将添加到数据库中 final fireStore FirebaseFirestore instance IconButton onPressed async newsController addNews a
  • 区分大小写的 SQL 区分大小写

    我正在尝试请求一个区分大小写的结果 例如在我的数据库中我有 ABCdef abcDEF abcdef 请求是 SELECT FROM table WHERE col abcdef 但我有 3 行结果 我只想要 abcdef 我尝试找到解决方
  • 如何获取 Kendo DropDownList 的选定值

    我不知道如何确定在我的剑道下拉列表中选择了哪个项目 我的观点将其模型定义为 model KendoApp Models SelectorViewModel ViewModel 定义为 public class SelectorViewMod
  • Postmessage 和 sendmessage 的替代方案

    我有一个程序 它使用多个线程来执行某些任务 每个线程都有一堆任务要执行 执行其中之一后 每个线程都会向主屏幕调用一条发布消息来更新日志 现在我有六万个任务 每个线程一万个 六个线程 执行每个任务线程后调用发布消息 但由于这些帖子消息 我的应
  • C# 数组还是字典?

    我想知道 C 数组的访问速度是否恒定 我需要在静态数组中存储 1000 个项目 这些项目将在服务器启动期间初始化 该数组将被只读使用 所以数组不会发生任何变化 我应该使用简单的 C 数组 new MyClass 还是字典 我对 C 非常陌生