Respuesta corta:
results.RemoveAll(r => r.ID==2);
eliminará el elemento con ID 2 en results
(en su lugar).
respuesta detallada:
Creo que es más fácil de usar .RemoveAll()
, porque se puede tener una lista de ID de elemento que desea quitar - por favor considera el siguiente ejemplo.
si tiene:
class myClass {
public int ID; public string FirstName; public string LastName;
}
y asignado algunos valores a results
de la siguiente manera:
var results=new List<myClass> {
new myClass() { ID=1, FirstName="Bill", LastName="Smith" },
new myClass() { ID=2, FirstName="John", LastName="Wilson" },
new myClass() { ID=3, FirstName="Doug", LastName="Berg" },
new myClass() { ID=4, FirstName="Bill", LastName="Wilson" },
};
A continuación, se puede definir una lista de ID para eliminar:
var removeList = new List<int>() { 2, 3 };
Y simplemente use esto para eliminarlos:
results.RemoveAll(r => removeList.Any(a => a==r.ID));
Será eliminar los elementos 2 y 3 y mantener los elementos 1 y 4 - tal como se especifica por el removeList
. Nota que esto sucede en su lugar, por lo que no se requiere ninguna asignación adicional.
Por supuesto, también se puede utilizar en artículos individuales como:
results.RemoveAll(r => r.ID==4);
donde se eliminará Bill con el ID 4 en nuestro ejemplo.
DotNetFiddle: Run the demo
bien, que quizás 'var itemsToRemove = resultlist.Where (r => r.Id == 2); foreach (var itemToRemove en ItemsToRemove) resultList.Remove (itemToRemove); ' – Vlad
¿No debería ser esto' resultlist.Items.RemoveAt (1); '? – Obsidian