这个我是用反循环来弄的
for (int i = listCount ; i >= ; i)
{
if (list[i]NO == itemNO)
{
listRemoveAt(i);
}
}
用RemoveAll效率应该可以他相当于一次遍历把所有符合条件的元素都交换到List的前面
然后一次性删除掉后面不符合条件的元素效率是O(n)的
如果是一条一条删每删除一条之后都要把后面所有元素向前移动效率是n^的!
不过如果用其它list的话其实也不用重现Clone方法
public void RemoveItemFromList(ref List <A> list A item)
{
List <A> tempList = new List <A>();
foreach (A a in list)
{
if (aNO != itemNO && !tempListContains(a))
tempListAdd(a);
}
list = tempList;
}
这样也可以