1.這個(gè)我是用反循環(huán)來(lái)弄的。 for (int i = list.Count - 1; i >= 0; i--) { if (list[i].NO == item.NO) { list.RemoveAt(i); } } 用RemoveAll效率應(yīng)該可以,他相當(dāng)于一次遍歷,把所有符合條件的元素都交換到List的前面, 然后一次性刪除掉后面不符合條件的元素,效率是O(n)的, 如果是一條一條刪,每刪除一條之后都要把后面所有元素向前移動(dòng),效率是n^2的! 2.不過(guò)如果用其它list的話,其實(shí)也不用重現(xiàn)Clone方法 public void RemoveItemFromList(ref List <A> list, A item) { List <A> tempList = new List <A>(); foreach (A a in list) { if (a.NO != item.NO && !tempList.Contains(a)) tempList.Add(a); } list = tempList; } 這樣也可以。 本文地址:【伊甸網(wǎng)】http://www./tech/devdeloper/Cp/2010-12-03/6662.html |
|
來(lái)自: 昵稱pds9i > 《我的圖書(shū)館》