Typically, when I use lambdas, I just use ‘a, b, c, d…’ as variable names as the types are easily inferred, and I find short names to be easier to read. Here is an example:
var someEnumerable = GetSomeEnumerable(); var somethingElseList = someEnumerable.Select(a => a.SomeProperty) .OrderBy(a => a.SomePropertyField); var someDictionary = somethingElseList.ToDictionary(a => new SomeClass(a.Prop1), a => a);
Some question this naming, and would prefer to see long typed out names, like this:
var someEnumerable = GetSomeEnumerable(); var somethingElseList = someEnumerable.Select(importantObj => importantObj.SomeProperty) .OrderBy(objsInfo => objsInfo.SomePropertyField); var someDictionary = somethingElseList.ToDictionary(theInfoId => new SomeClass(theInfoId.Prop1), theInfoId2 => theInfoId2);
Since the scope is so narrow (between the parens), unless you’re getting stupid and nesting them, I find it easier to read short names.
Without getting caught up in the silly naming examples I used above, what is the general consensus on Lambda variable names? To short name, or not to short name?
The way I usualy do it depends on the collection you’re enumerating over. If the name of the collection implies what type the lambda parameter will be, then I just go with the single letter, however if the collection isn’t as descriptive, then I’ll use a word.
IE: