2012-07-02 28 views
9

Estoy depurando un bucle foreach que iterará más de 1000 veces, por lo que solo quiero que se rompa un punto de interrupción dentro del ciclo para un elemento en particular.Punto de interrupción condicional C#?

Entonces ...

foreach(Employee employee in employees) 
{ 
//DO SOMETHING 
//BREAK HERE WHEN employee.Id == '2342' 
//DO SOMETHING ELSE 
} 

¿Tengo que escribir una declaración If y algo de código ficticio dentro de ella y romper esa manera? ¿Esa es la única forma?

Respuesta

4

Simplemente añadiendo a las respuestas anteriores. Usar puntos de interrupción condicionales.

enter image description here

Puede especificar la condición, como a continuación
enter image description here

+0

He tenido que cambiar la respuesta correcta a esta. Más descriptivo y más relevante. –

+2

Con> 1000 iteraciones, la respuesta de Leppie es mejor. Si bien tiene que editar el código para hacer esto, es mucho más rápido. http://stackoverflow.com/a/11290503/282143 – Eccentropy

21
if (employee.Id == '2342') Debugger.Break(); 

O bien, puede establecer un punto de interrupción condicional en VS, pero desde mi experiencia, eso es increíblemente lento.

+0

Por qué la downvote? – leppie

+0

Gracias, esto fue excepcionalmente útil. – Azrael

2

Puede usar puntos de interrupción condicionales en Visual Studio.

Haga clic con el botón derecho en el punto de corte y elija condicional y luego ponga su cláusula.

8

Si está utilizando algo que no sean las ediciones express de VS, haga clic derecho en el punto de interrupción y haga clic en Establecer condición.

Personalmente, utilizaría este enfoque ya que consideraría una mala práctica modificar tu código para depurarlo.

De lo contrario, está obligado a hacerlo a su manera.

3

Utilice un depurador VS con punto de interrupción condicional, a través de la interfaz de usuario.

El más fácil y más rápido way imo.

The Ultimate Visual Studio Tips and Tricks Blog

+6

¿Más rápido? Es 1000 veces más lento que una condición en el código. – leppie

+2

es * extremadamente * subjetivo. Yo, personalmente, los uso todos los días y encuentro mucho más rápido que "ensuciar" mi código con algo temporal. Si puedo evitar escribir código DEBUG dentro de mi código de producción, lo hago. – Tigran

+0

@leppie No sabía eso, vale la pena considerarlo si está ejecutando más de un millón de registros, ¡gracias! – Liath

Cuestiones relacionadas