2011-05-30 5 views
13

Tengo List<string> paths = new List<string>(); Quiero eliminar el elemento que no estoy seguro de que esté allí. ¿Debo verificar si existe o simplemente ejecutar el método Eliminar al frente?Debe listar <T>. Quitar precedido con la lista <T>. ¿Existe?

¿Es if (paths.Exists(stringVar)) necesario o considerado una buena práctica antes de paths.Remove(stringVar)?

Al ejecutar Eliminar sin existir, simplemente se devolverá falso en caso de que no exista tal elemento en la lista.

+0

no arroja una excepción, aunque siempre será una buena práctica comprobar la existencia antes de eliminar el elemento. No va a doler :) – Devjosh

+3

@Devjosh: No es necesario y ** duele ** en situaciones críticas de rendimiento con listas grandes, porque con la verificación adicional, la lista se atraviesa dos veces en lugar de una vez. –

+0

@daniel gracias no estaba conociendo el comportamiento predeterminado del método de eliminación – Devjosh

Respuesta

17

No, no arroja una excepción y no es necesario realizar comprobaciones adicionales. vea MSDN:

true si el artículo se elimina con éxito; de lo contrario, falso. Este método también devuelve falso si el artículo no se encontró en la Lista.

8

No, no lo revise. Porque Remove ya hace el control. Su cheque adicional es simplemente superfluo y no trae ningún beneficio.

+0

No solo no agrega beneficios, sino que requiere otro análisis de la lista (que es O (N)) –

+0

Derecha. Ya lo señalé en mi comentario al comentario de Devjosh sobre la pregunta. –

Cuestiones relacionadas