I can understand banning SQL style linq and allowing only functional style, but I guess that's more of a personal preference.
[1]: Well, at least directly enough for LINQ performance to be a problem.
Yes, all this was kicked around and argued about.
One of Kevlin Henney's talks references a really neat quote by Poul Anderson on this subject:
> I have yet to see any problem, however complicated, which, when you looked at it in the right way, did not become still more complicated.
var x = 10;
int x = 10;
The code was generating some JSON using Linq and created JSON properties: new JsonObject(LinqExpressionHere)
The name for the property was defined as
$"SomePrefix_{x.Name}"
which he helpfully changed to
"SomePrefix_{x.Name}"
which then compiled, but crashed in the test environment because of - surprise - duplicate attributes..
Shudder!!
Especially since VS has plugins (or maybe it's built-in?) that will let you fold/hide individual methods, if you really want to do that!
Using Linq was heavily frowned upon. It took quite a few years before it started to be accepted..
At one point we were also strongly encouraged to place a #region around every single method! I never understood why, and luckily that one did get dropped.