次の方法で共有


let 句 (C# リファレンス)

クエリ式では、後の句で使用できるように、部分式の結果を格納すると便利です。 let キーワードを使用して、新しい範囲変数を作成し、式の結果を使用して初期化します。 値を使用して範囲変数を初期化した後は、別の値を割り当てることはできません。 ただし、範囲変数がクエリ可能な型を保持している場合は、クエリを実行できます。

C# 言語リファレンスには、C# 言語の最新リリース バージョンが記載されています。 また、今後の言語リリースのパブリック プレビューの機能に関する初期ドキュメントも含まれています。

このドキュメントでは、言語の最後の 3 つのバージョンまたは現在のパブリック プレビューで最初に導入された機能を特定します。

ヒント

C# で機能が初めて導入された時期を確認するには、 C# 言語バージョン履歴に関する記事を参照してください。

次の例では、 let は 2 つの方法で使用されます。

  1. クエリを実行できる列挙可能な型が作成されます。
  2. これにより、クエリは範囲変数wordに対して 1 回だけToLowerを呼び出します。 letを使用しない場合は、where句の各述語でToLowerを呼び出す必要があります。
class LetSample1
{
    static void Main()
    {
        string[] strings =
        [
            "A penny saved is a penny earned.",
            "The early bird catches the worm.",
            "The pen is mightier than the sword."
        ];

        // Split the sentence into an array of words
        // and select those whose first letter is a vowel.
        var earlyBirdQuery =
            from sentence in strings
            let words = sentence.Split(' ')
            from word in words
            let w = word.ToLower()
            where w[0] == 'a' || w[0] == 'e'
                || w[0] == 'i' || w[0] == 'o'
                || w[0] == 'u'
            select word;

        // Execute the query.
        foreach (var v in earlyBirdQuery)
        {
            Console.WriteLine($"\"{v}\" starts with a vowel");
        }
    }
}
/* Output:
    "A" starts with a vowel
    "is" starts with a vowel
    "a" starts with a vowel
    "earned." starts with a vowel
    "early" starts with a vowel
    "is" starts with a vowel
*/

こちらも参照ください