On a recent Dot Net Rocks podcast, Jon Skeet mentioned possible abuses of LINQ syntax. What examples have people seen where crazy things are being done with LINQ?
Here are my own abuses - purely for the sake of having a laugh at a geek night, and demonstrating what the compiler actually does with query expressions.
Arguably my "LINQ to Mandelbrot" is a bit abusive too :)
I was particularly thinking of abuse of the syntax by the way, but there are always plenty of ways to abuse the very presence of LINQ - doing things "the LINQ way" when there are simpler approaches available without using LINQ. For instance, getting to the n
th element of an array:
// Sensible (we know that people implements IList<Person>)
Person x = people[10];
// Insane
Person y = people.Skip(9).First();
I suspect there will be more cases of abuse like this than abusing the power of query expressions, partly because many devs won't realise that abusing query expressions will even work :)
It has to be a ray-tracer implemented in a single LINQ expression. Clever, beautiful, and scary all at the same time!
Honestly, it's got to be cases where people chose the LINQ syntax where the code to do so:
- Was the same or longer than a simple loop
- Offered no performance or correctness advantage (readability/maintainability) over a simple loop