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