c# - 填补数字列表中空白的最简单方法是什么?

标签 c# ms-word sorteddictionary

我在用一行标题来解释问题时遇到了一些麻烦,但希望这个描述能为您提供足够的洞察力来完全理解我的问题:

我在 Word 文档中有几个变量。每个变量都有一个 Value这是一个数字(从 0 开始到变量的数量)。 SortedDictionary正在用这些变量填充,但有可能以前删除了一个变量,所以可以说有一个“差距”。示例:

5 个变量被添加到 SortedDictionary<int, string>其中第一个数字是 int并且字符串对应于 string SortedDictionary 的一部分。

0 "name 1"
1 "name 2"
2 "name 3"

现在其中一个变量被删除,所以字典被填充成这样:

0 "name 1"
2 "name 3"

最终,所有 SortedDictionary 条目都添加到列表框中,我使用第一个数字作为插入索引。你可以想象当它试图将一个项目添加到 index 2 时它会报错。什么时候index 1不存在,但是 index 0

我想解决的方法是当用户调用 DeleteVariable()方法和一个变量被带走,所有变量都应该自动更新它们的值(数字),所以当 SortedDictionary 获取所有变量时,列表框不再给出错误,因为所有数字都匹配(没有间隙)。

请指教。

最佳答案

我会使用列表而不是排序字典。您的号码将成为列表中的索引。这样,如果您从列表中删除一个项目(可能使用 list.RemoveAt(index)),所有其他索引将以您想要的方式有效地“更新”。

关于c# - 填补数字列表中空白的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3140728/

相关文章:

c# - 在单词互操作中使用选择和范围

excel - 用于将 MS Word 表导出到 Excel 工作表的宏

.net - 为什么 SortedDictionary<K, V>.GetEnumerator O(log n) 但 SortedSet<T>.GetEnumerator O(1)?

c# - 如何向 RESTful WCF 服务传递和使用 JSON 参数?

c# - Blazor 服务器构建错误 - 新的 Web 应用程序导致构建错误

c# - ContextMenu 样式在不使用任何 Binding 的情况下产生奇怪的 Binding 错误

c# - 删除应用程序的 DLL 依赖项

pdf - 用Sphinx索引Word文档和PDF

c# - 设置 SortedDictionary 的第 i 个值

c# - 在 SortedDictionary 中找到第一个未使用的键的快速方法?