收集帮助请

时间:2011-05-11 14:44:09

标签: c#

我有一个集合< int的>。

1
2
3

当我删除时,例如,2.集合变为1,3。 但是,当我去添加另一个项目时,列表变为

1
3
3

因为序列基于集合中的项目数

有一种简单的重新排序方法。我上面显示1,3的示例应该重新排序到1,2然后下一个新项目将是3。

2 个答案:

答案 0 :(得分:2)

听起来您的列表可以替换为整数变量,因为您在此处“存储”的是列表中项目的(从1开始)索引。创建从1到n的“列表”只是int count = n。测试项目是否在列表中变为if (item <= count)。添加项目为count++,并删除count--

答案 1 :(得分:0)

每次使用Enumerable.Range删除对象时都可以重写列表,所以代码就是这样:

    //execute this after remove element
void Resequence()
        {
            myList = Enumerable.Range(1, myList.Count).ToList();
        }

所以添加将是这样的

void AddElement(){
   myList.Add(myList.Count + 1);
}

注意:在add元素中,如果列表为零,则应删除+1。