C# 集合在删除然后添加元素后包含预期的自身

问题描述 投票:0回答:2

我收集了

<int>

1
2
3

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

1
3
3

因为顺序是基于集合中项目的数量

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

c#
2个回答
2
投票

听起来你的列表可以用整数变量替换,因为你在这里“存储”的只是列表中项目的(从1开始的)索引。创建一个从 1 到 n 的“列表”就是

int count = n
。测试某个项目是否在列表中变为
if (item <= count)
。添加项目将是
count++
,删除项目将是
count--


0
投票

每次使用

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。

© www.soinside.com 2019 - 2024. All rights reserved.