程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#刪除list中的元素

c#刪除list中的元素

編輯:C#入門知識

1.這個我是用反循環來弄的。

  for (int i = list.Count - 1; i >= 0; i--)

  {

  if (list[i].NO == item.NO)

  {

  list.RemoveAt(i);

  }

  }

  用RemoveAll效率應該可以,他相當於一次遍歷,把所有符合條件的元素都交換到List的前面,

  然後一次性刪除掉後面不符合條件的元素,效率是O(n)的,

  如果是一條一條刪,每刪除一條之後都要把後面所有元素向前移動,效率是n^2的!

  2.不過如果用其它list的話,其實也不用重現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;

  }

    

  1. 上一頁:
  2. 下一頁: