实现集合类的元素删除和修改的一点实践。。。
生活随笔
收集整理的這篇文章主要介紹了
实现集合类的元素删除和修改的一点实践。。。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一點很小的心得。
眾所周知,具有迭代接口的集合類可以用foreach來遍歷。但要求迭代過程不能被重置,也就是不能添加,刪除或修改。有時候我們必須要這樣做,就需要另辟蹊徑來實現遍歷。
比如ListView控件中的SelectItems是一個基于Items的子集合。如果需要刪除所選項時,無法利用foreach來實現。這時候可以用類似于下面的代碼了實現:
while (aList.SelectedItems.Count > 0)
{
??????aItems.Remove(aList.SelectedItems[0]);
?}
利用SelectedItems的動態性,固定刪除第一個選項即可。
有時候我們需要更新集合中各個項的值。這時候也無法運用foreach進行遍歷。我的策略是先利用一個Stack將所有的子項暫時存放,然后依次出棧實現遍歷,代碼類似于:
foreach(object item in collection)
{
????? aStack.push(item);
}
while(aStack.Count>0)
{
????? object item=aStack.pop();
????? //update item
???? //...
}
有點笨的方法。但在子集個數不多也不大,對時間要求不BT的情況下用用還是可以的。
眾所周知,具有迭代接口的集合類可以用foreach來遍歷。但要求迭代過程不能被重置,也就是不能添加,刪除或修改。有時候我們必須要這樣做,就需要另辟蹊徑來實現遍歷。
比如ListView控件中的SelectItems是一個基于Items的子集合。如果需要刪除所選項時,無法利用foreach來實現。這時候可以用類似于下面的代碼了實現:
while (aList.SelectedItems.Count > 0)
{
??????aItems.Remove(aList.SelectedItems[0]);
?}
利用SelectedItems的動態性,固定刪除第一個選項即可。
有時候我們需要更新集合中各個項的值。這時候也無法運用foreach進行遍歷。我的策略是先利用一個Stack將所有的子項暫時存放,然后依次出棧實現遍歷,代碼類似于:
foreach(object item in collection)
{
????? aStack.push(item);
}
while(aStack.Count>0)
{
????? object item=aStack.pop();
????? //update item
???? //...
}
有點笨的方法。但在子集個數不多也不大,對時間要求不BT的情況下用用還是可以的。
轉載于:https://www.cnblogs.com/duguguiyu/archive/2006/08/02/466270.html
總結
以上是生活随笔為你收集整理的实现集合类的元素删除和修改的一点实践。。。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 十天学会ASP.net
- 下一篇: (转)一个带自定义分页,排序功能的DAT