ラムダ変数名 - 短い名前にするべきか、それとも短い名前にしないべきか? [closed] 質問する

ラムダ変数名 - 短い名前にするべきか、それとも短い名前にしないべきか? [closed] 質問する

通常、ラムダを使用する場合、変数名として「a、b、c、d...」を使用します。これは、型が簡単に推測でき、短い名前の方が読みやすいためです。次に例を示します。

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);

この命名に疑問を抱く人もおり、次のように長くタイプされた名前を好む人もいます。

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);

範囲が非常に狭いため(括弧の間)、愚かなことをして括弧を入れ子にしない限り、短い名前の方が読みやすいと思います。

上で使った馬鹿げた命名例にとらわれずにLambda 変数名に関する一般的なコンセンサスは何ですか? 短い名前にするべきか、それとも短い名前にしないべきか?

ベストアンサー1

私が通常行う方法は、列挙するコレクションによって異なります。コレクションの名前がラムダ パラメータの型を示している場合は、1 文字だけを使用しますが、コレクションがそれほど説明的でない場合は、単語を使用します。

例えば:

myCollection.Where(person =>....); //non descriptive collection name

myPeopleCollection.Where(p=>...); // descriptive collection name

おすすめ記事