#VS2015 – Depurar sentencias LINQ

Hola!

Cuando usas mucho ReSharper, una de las opciones que te propone el mismo es convertir muchas sentencias ForEach() en sentencias LINQ. No voy a comentar si esta opción es mejor o peor a nivel rendimiento de una app. En este post tomaré como referencia la simplicidad de código, dicho de otra manera, la importancia de la estructura del código. La verdad es que por lo general usar sentencias LINQ es una buena idea y es bastante fácil de entender o seguir. Sin embargo existen también algunos ejemplos de LINQ que compiten codo a codo con el peor de los ejemplos de una expresión regular.

Veamos un ejemplo simple (que es una aberración de código)

Una vez “traducido” a LINQ el mismo podría quedar de la siguiente forma

Si bien este par de líneas son bastante simples, hay casos donde comprender lo que “quiere” hacer un developer con una sentencia LINQ puede ser complicado. Por suerte, Visual Studio 2015 (y desde 2013 creo), nos permite depurar línea a línea lo que sucede dentro de una sentencia LINQ. Veamos el siguiente ejemplo, donde además de ver el paso a paso, podemos ver como en el inline vemos los valores de las variables que participan en la depuración.

Aunque cuidado, si llegas al punto donde debes depurar código para entenderlo, seguramente TE ESTAN FALTANDO UN PAR DE TESTS AUTOMATIZADOS en el mismo.

References

– MSDN for each, https://msdn.microsoft.com/es-es/library/ttw7t8t6.aspx?f=255&MSPPError=-2147217396

– MSDN LINQ, https://msdn.microsoft.com/es-es/library/bb397926.aspx

Saludos @ Airplace

/El Bruno

One thought on “#VS2015 – Depurar sentencias LINQ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.