我收集了
<int>
。
1
2
3
例如,当我删除 2 时,集合将变为 1,3。但是,当我添加另一个项目时,列表会变成
1
3
3
因为顺序是基于集合中项目的数量
有没有一种简单的方法可以重新排序。在上面的示例中,我显示 1,3 应该重新排序为 1,2,然后下一个新项目将是 3。
听起来你的列表可以用整数变量替换,因为你在这里“存储”的只是列表中项目的(从1开始的)索引。创建一个从 1 到 n 的“列表”就是
int count = n
。测试某个项目是否在列表中变为 if (item <= count)
。添加项目将是 count++
,删除项目将是 count--
。
每次使用
Enumerable.Range
删除对象时,您都可以重写列表,因此您的代码将如下所示:
//execute this after remove element
void Resequence()
{
myList = Enumerable.Range(1, myList.Count).ToList();
}
所以添加会是这样的
void AddElement(){
myList.Add(myList.Count + 1);
}
注意:在添加元素中,如果列表是zeroBased,则应删除+1。