使用可以引用的ID在运行时创建变量

时间:2013-11-27 02:20:43

标签: c# variables types

我正在创建一个3D建模应用程序,它将顶点点存储在一堆变量中,每个变量一个。我需要能够动态添加或删除要求动态添加或删除这些变量的顶点。每个面将使用链接到包含点坐标的变量的ID来引用这些点。有没有办法在运行时创建和销毁变量?有没有更好的方法来实现现有的数据类型?我不认为数组会起作用,因为这些数组需要独立才能轻松添加或删除。我也无法直接存储点的坐标,因为浮点错误或其他小的改变会使重复的点彼此相邻。

1 个答案:

答案 0 :(得分:1)

考虑使用Dictionary(正如阿列克谢在评论中指出的那样)。字典在添加,删除和检索值方面非常快。

关键,选项包括

  • 顺序int
  • A long,它是基于顶点数据的哈希
  • 最糟糕的情况是Guid

顺序int在许多用例中都可以正常工作,但如果您有多个线程请求新ID,则会有轻微的争用获取下一个ID(并确保您遵循线程的最佳做法)。

long哈希存在冲突风险,例如:如果哈希是从坐标派生的,并且您可以在管理下使用相同的坐标来处理多个顶点(具有不同坐标的顶点运行哈希冲突的正常风险)。

对于密钥来说,Guid非常大,特别是如果有很多点,但保证是唯一的。