2012-07-02 1 views
9

Sto eseguendo il debug di un ciclo foreach che verrà iterato oltre 1000 volte, quindi desidero solo un punto di interruzione all'interno del ciclo da interrompere per un particolare elemento.Punto di rottura condizionale C#?

Quindi ...

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

Devo scrivere un If dichiarazione e alcuni codice fittizio all'interno di esso e rompere in questo modo? Quell'unico modo?

risposta

4

Basta aggiungere alle risposte precedenti. Utilizzare punti di interruzione condizionali.

enter image description here

È possibile specificare la condizione come di seguito
enter image description here

+0

Ho dovuto cambiare la risposta corretta a questa. Più descrittivo e più rilevante. –

+2

Con> 1000 iterazioni, la risposta di leppie è migliore. Mentre devi modificare il codice per farlo, è molto più veloce. http://stackoverflow.com/a/11290503/282143 – Eccentropy

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

In alternativa, è possibile impostare un punto di interruzione condizionale in VS, ma dalla mia esperienza, che è incredibilmente lento.

+0

Perché il downvote? – leppie

+0

Grazie, questo è stato eccezionalmente utile. – Azrael

2

È possibile utilizzare i punti di interruzione condizionali in Visual Studio.

Fare clic con il pulsante destro del mouse sul punto di interruzione e scegliere condizionale, quindi inserire la clausola.

8

Se si sta utilizzando qualcosa di diverso dalle edizioni Express di VS fare clic con il pulsante destro del mouse sul punto di interruzione e fare clic su Imposta condizione.

Personalmente userei questo approccio poiché considererei una pratica scorretta modificare il codice per eseguirne il debug.

Altrimenti sei costretto a farlo a modo tuo.

3

Utilizzare un debugger VS con punto di interruzione condizionale, tramite interfaccia utente.

Il più semplice e più veloce modo imo.

The Ultimate Visual Studio Tips and Tricks Blog

+6

Più veloce? È 1000 volte più lento di una condizione nel codice. – leppie

+2

è * estremamente * soggettivo. Io, personalmente, li uso ogni giorno e trovo molto più veloce di "dirigere" il mio codice con qualcosa di temporaneo. Se riesco a evitare di scrivere il codice DEBUG nel mio codice di produzione, lo faccio. – Tigran

+0

@leppie Non lo sapevo, vale la pena considerarlo se si stanno superando alcuni milioni di dischi - grazie! – Liath

Problemi correlati