【问题标题】:What type should i use for "database-like" behaviour in C#?我应该为 C# 中的“类似数据库”的行为使用什么类型?
【发布时间】:2013-08-01 05:26:52
【问题描述】:

我目前正在研究一种实验装置,该装置用于使用飞秒激光将复杂的微结构写入玻璃。

激光的输出功率由我从我的(C# 控制台)应用程序控制的滤光轮调节。由于我最初不知道车轮的位置,因此我需要在启动时通过测量车轮上预定义数量的点的功率来初始化它。

此信息(功率值及其在车轮上的相应位置)应在运行时存储。因此,基本上,如果请求一定的输出功率,控制器将查找可以找到所需值的两个点,然后增加位置直到达到。

这是我通常会使用数据库来实现的。由于初始化发生在每次启动时并且不需要持久化,我可能更愿意将其保留为内存列表。

所以我的问题是:

是否有可能以某种方式“索引”功率值以快速检索它们?

【问题讨论】:

  • 您希望存储多少个值?
  • 不多,最多 200 个,否则初始化过程将花费太长时间......
  • 字典就好了。拥有 200 个值是最少的。

标签: c# .net list indexing


【解决方案1】:

Dictionary<int, int> 可能是您最好的选择。当然,如果不是ints,您可以切换键/值类型以匹配您的数据。

【讨论】:

    【解决方案2】:

    如果你想将每个键映射到一个值,你应该使用Dictionary<key,value>

    【讨论】:

      【解决方案3】:

      如果您必须计算键的“中间”值,您可以考虑使用SortedDictionary<int, int>

      查看similar question here 以获取有关使用SortedDictionary 查找两个键之间的点的示例

      【讨论】:

        【解决方案4】:

        前段时间我写了一篇关于dotnet中不同列表类型的小贴子,各有优缺点。
        http://www.selfelected.com/list-of-list-and-collection-classes-in-dotnet-11-45/

        【讨论】:

          猜你喜欢
          • 2019-07-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-05
          • 1970-01-01
          • 2021-01-08
          • 1970-01-01
          • 2023-03-04
          相关资源
          最近更新 更多