我正在寻找一种更好的数据结构或方法来简单地替换动态数组中的对象。似乎列表是选择,但是我阅读并注意到 RemoveAt 和 Insert 的性能不如我希望的那样好。
让我详细说明我想要实现的目标:
清单 1
- 清单项目 1
- 清单项目 2
- 清单项目 3
清单2
- 清单项目 1
- 清单项目 2
- 空值
两个列表都使用相同的对象类型。我想用 List1[1] 替换 List2 的空列表项 -- 列表项 1 克隆。我使用克隆,因此复制的列表项的值是一个单独的实例。
我还想用 List2 的列表项 1 的克隆替换 List2 的列表项 2。
这是我要实现的一些示例代码:
projCraneVertices.RemoveAt(projCraneVertices.Count - 4);
projCraneVertices.Insert((projCraneVertices.Count - 3), realCraneVertices[botPoint].clone());
projCraneVertices.RemoveAt(projCraneVertices.Count - 3);
projCraneVertices.Insert((projCraneVertices.Count - 2), projCraneVertices[botPoint].clone());
projCraneVertices.RemoveAt(projCraneVertices.Count - 2);
projCraneVertices.Insert((projCraneVertices.Count - 1), realCraneVertices[topPoint].clone());
projCraneVertices.RemoveAt(projCraneVertices.Count - 1);
projCraneVertices.Insert((projCraneVertices.Count), projCraneVertices[topPoint].clone());