如何从列表中删除中间元素时重置对象的int值

时间:2014-11-06 23:29:58

标签: c# list sorting

我得到了一个列表,其中的对象具有属性" serie"保存元素的顺序:

---------------------------------
| **Element**       |**Serie**  |
---------------------------------
| Object1           |     1     |
---------------------------------
| Object2           |     2     |
---------------------------------
| Object3           |     3     |
---------------------------------

我怎么能得到它,如果我删除元素2,我的对象3的属性系列变为2,我的意思是,重置元素删除后所有元素的系列值。

任何帮助都会得到很多帮助。

2 个答案:

答案 0 :(得分:4)

您必须手动循环遍历列表并修改对象的属性,将每个项目的值设置为等于项目索引。

如果您知道已删除的对象的索引,那么您可以从该点开始循环,因为之前的对象没有任何更改。

答案 1 :(得分:1)

怎么样:

    public class Object
    {
        public int Serie;
    }

然后:

       var list = new List<Object>();
       list.Add(new Object { Serie = 1 });
       list.Add(new Object { Serie = 2 });
       list.Add(new Object { Serie = 3 });

       list.RemoveAt(1);

       int i = 1;
       foreach (Object obj in list)
       {
           obj.Serie = i;
           i++;
       }