rksoftware

Visual Studio とか C# とかが好きです

C# 2.0 以降の新機能の確認 - C# 9.0 - ラムダ ディスカード パラメーター

C# 2.0 以降の新機能を一つづつ確認していきます。
以前に一度行ったのですが、公式ドキュメント再編でリンク切れしているところを見つけてしまったので。今ならもっと簡潔なサンプルが欠けるところもあるだろうし、せっかくなので今もう一度確認して行きます。

ラムダ ディスカード パラメーター

 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/operators/lambda-expressions#input-parameters-of-a-lambda-expression
 ラムダ式のパラメータで使わないものが複数ある場合に、_ と書くと該当のパラメータを使えなくできる。

// 一つ目のパラメータも二つ目のパラメータも使わない場合
new int[0].Select((_, _) => 0);
// _ は破棄なので変数名になっていない。次のコードはエラーとなってくれてうれしい
new int[0].Select((_, _) => _);  // 現在のコンテキストに '_' という名前は存在しません