は私だけのLINQでの奇妙な行動を発見した:LINQの.Selectは、()/ .SelectMany()は自動的に2番目の使用、オプションのパラメータ
私は関数名を渡したい単項関数を呼び出して、その代わりに
var foo = myList.Select(item => MyFunc(item));
私は同じでなければなりません
var foo = myList.Select(MyFunc);
を書きます。場合によっては、そうではありません!この場合、
private string MyFunc(string input, int foo = 0)
{
...
}
、2番目のパラメータはどちらかではない場合
var foo = myList.Select((item, index) => MyFunc(item, index));
に等しい
var foo = myList.Select(MyFunc);
の文:関数は、int
とオプションのある二番目のパラメータを持っている。すなわち場合コンパイラは文句を言っていませんが、int
と言っても、コンパイラは不平を言っていますが、この場合はあなたを驚かせるだけです。
他に誰かがこれに遭遇しましたか?他にどのようなLinq式がこのように機能しますか? (これまでは.SelectMany()
)。