¿Cómo elimino un elemento que coincide con un criterio dado de una lista enlazada en C #?
-
02-07-2019 - |
Pregunta
Tengo una lista enlazada, donde la entrada tiene un miembro llamado id. Quiero eliminar la entrada de la lista donde id coincide con un valor de búsqueda. ¿Cuál es la mejor manera de hacer esto? No quiero usar Remove (), porque Entry.Equals comparará a otros miembros, y solo quiero coincidir en la identificación. Espero hacer algo como esto:
entries.RemoveWhereTrue(e => e.id == searchId);
editar: ¿Puede alguien volver a abrir esta pregunta para mí? NO es un duplicado: la pregunta que se supone que es un duplicado es sobre la clase Lista. List.RemoveAll no funcionará, eso es parte de la clase List.
Solución
list.Remove(list.First(e => e.id == searchId));
Otros consejos
Aquí hay una solución simple:
list.Remove(list.First((node) => node.id == searchId));
Solo usa el método de extensión Where. Obtendrá una nueva lista (IIRC).
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow