熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

c#刪除list中的元素

2013-11-13 09:52:35  來源: .NET編程 

  這個我是用反循環來弄的

  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;

  }

  這樣也可以


From:http://tw.wingwit.com/Article/program/net/201311/11831.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.