2011-05-11 119 views
1

我有一個集合< int's>。請收藏幫助

1 
2 
3 

當我除去,例如,二,收集變得1,3。 然而,當我去添加其他項目,因爲序列基於關閉在收集

的項目數列表變得

1 
3 
3 

有一種簡單的方法來重新排序。上面的例子中,我顯示1,3應該重新排列到1,2然後下一個新項目將是3.

回答

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元素中,如果列表爲zeroBased,則應刪除+1。

2

這聽起來像你的列表可以用一個整數變量替換,因爲你所有這裏的「存儲」是列表中項目的(從1開始)索引。從1到n創建一個「列表」只會是int count = n。測試項目是否在列表中變成if (item <= count)。添加一個項目將是count++,並刪除count--