Imagine que un objeto con el que está trabajando tiene una colección de otros objetos asociados, por ejemplo, la colección Controls en un WinForm. Desea comprobar si hay un determinado objeto en la colección, pero la colección no tiene un método Contains()
. Hay varias maneras de lidiar con esto.Uso de excepciones no controladas en lugar de Contiene()?
- implementar su propio método
Contains()
por bucle a través de todos los elementos de la colección para ver si uno de ellos es lo que busca. Este parece ser el enfoque de "mejores prácticas". - Recientemente me encontré con algo de código en lugar de un bucle, hubo un intento de acceder al objeto dentro de una instrucción try, de la siguiente manera:
try { Object aObject = myCollection[myObject]; } catch(Exception e) { //if this is thrown, then the object doesn't exist in the collection }
Mi pregunta es cómo los pobres de una práctica de programación ¿considera que la segunda opción es y por qué? ¿Cómo se compara el rendimiento del mismo con un ciclo de la colección?