C#コンパイラのクエリ理解機能を使用すると、次のようなコードを記述できます。
var names = new string[] { "Dog", "Cat", "Giraffe", "Monkey", "Tortoise" };
var result =
from animalName in names
let nameLength = animalName.Length
where nameLength > 3
orderby nameLength
select animalName;
上記のクエリ式では、let
キーワードにより、への重複した呼び出しなしに、whereおよびorderby操作に値を転送できますanimalName.Length
。
ここで「let」キーワードの機能を実現するLINQ拡張メソッド呼び出しの同等のセットは何ですか?
11
ちなみに、C#3.0仕様では、すべてのクエリ内包変換ルールが非常に詳細に説明されています。
—
Eric Lippert、
そして、スペックが重くなっているのを見つけた人のために、DonthのJon SkeetのC#もそれをカバーしています;-p
—
Marc Gravell
C#言語仕様はダウンロード可能なWordドキュメントであり、そのコンテンツは検索エンジンによって索引付けされておらず、リンクもオンラインでの閲覧もできません。仕様がオンラインで入手できれば、非常に役立ちます。
—
Olivier Jacot-Descombes