Content is the result of others' work, collected by hl3292
1. I used an inverse loop.
for (int i = list.Count - 1; i >= 0; i--)
{
if (list[i].NO == item.NO)
{
list.RemoveAt(i);
}
}
Comments:
Removeall should be used for efficiency. It is equivalent to a traversal, which switches all elements that meet the conditions to the front of the list,
Then, the non-conforming elements are deleted at one time, and the efficiency is O (n,
If a row is deleted, all the following elements must be moved forward after each row is deleted. The efficiency is n ^ 2!
2. However, if you use other lists, you do not need to reproduce the clone method.
Code
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;
}
This can also be done.