より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

Convert to method groupとは?

C# のコードを書いていると、以下のようなコード支援が

f:id:rimever:20210329230021p:plain
Convert to method group

あー、なるほどね。と

        static void Main(string[] args)
        {
            var a = new List<int>() {1, 3, 4, 5};
            var b = a.Select(i => IsOdd(i)).ToList();
        }

        static bool IsOdd(int i)
        {
            return i % 2 == 1;
        }

以下のように出来ます。Select内のメソッド呼び出しを簡略化できるんですね。

            var b = a.Select(IsOdd).ToList();

Selectで渡されるのはint型と決まっているし、IsOddもint型の引数を一つ受け取る関数なので成立します。

となると、奇数ではない、i => !IsOdd(i)となる以下はできるのではないか?と思いました。

            var b = a.Select(!IsOdd).ToList();

残念ながら、これは出来ません。