C#のLinqのメソッド一覧

【C# sharp】匿名メソッド、ラムダ式(=>)について解説します。

まえがき

こんばんは、かっぱちゃんです。

今回は下記のテーマについて解説します。

今回のテーマ

匿名メソッドとラムダ式について

今回の記事は下記の記事の続きなので、まだ見ていない方は良ければみてください。

CHECK

【C# sharp】デリゲートのラムダ式(=>)について解説します。

今回のテーマ こんばんは、サルモリです。 今回は、下記のテーマについて書いていきます。 今回のテーマ ラムダ式について 今回はラムダ式について、理解するためにデリゲートの解説をしていこうと思います。 ...

続きを見る

早速、匿名メソッドについて解説します。
サルモリ

他のLinqの記事についてはこちら

デリケートを使用した書き方

まず、前回の記事のおさらいとしてデリケートを使用した書き方を記述します。

デリケートを使用して、奇数、偶数を判別するソースコード

 result
4
6

デリケートのJudgeに偶数の関数を代入した後、奇数の関数を代入しているソースコードです。

このソースコードのデリケートに対して、匿名メソッドを使用した書き方にしてみます。

匿名メソッドを使用した書き方

匿名メソッドとは、名前の通り名前が存在しないメソッドです。

匿名メソッドを使用することにより、上記のIsEvenやIsOddなどの関数名を指定することなく記述することができます。

早速、ソースコードを見てみましょう。

匿名メソッドを使用した書き方

 result
4
6

変更を加えたのは11行目と12行目です。中々テンションの上がる書き方になってきましたね。

二つのソースコードを見比べて頂ければ、処理自体にメソッド名っていらなくない?ってのが実感して頂けたと思います。

でも、まだdelegateという文字列を書かなければならないので、冗長に感じてしまいます。

そこで、ラムダ式を使用すればさらに短く書くことができるのです。

ラムダ式を使用した書き方

続けて、上記のソースコードをラムダ式を使用した方法で書いていきます。

ラムダ式を使用した書き方

 result
4
6

11行目、12行目をみてください。delegateがなくなり、遂に=>が現れました。=>はdelegateを表していたんですね。

右辺の部分をラムダ式といいます。一種のメソッドとして考えて頂ければいいでしょう。

ラムダ式はさらに簡潔に書くことができるので、これからは11行目と12行目に注目し、さらに簡潔に書けるようにしていきます。

サルモリ
さらに簡潔に書けるようにしていくよ!

ラムダ式の省略

ラムダ式をさらに省略していきましょう。上記の11行目と12行目のソースコードは下記です。

step
1
ラムダ式は{}とreturnを省略することができます。

step
2
ラムダ式では引数の型を省略することが可能です。

step
3
ラムダ式では引数が1つの場合は、()を外すことが可能です。

かなり簡潔にすることができましたね。Linqでも見慣れた形になりました。

最終的なソースコードは下記となります。

ラムダ式の最終的な書き方

 result
4
6

色々なラムダ式を渡してみよう

奇数と偶数以外にも色々なラムダ式を渡してみましょう。

例では下記を判別するラムダ式を渡してみます。

  • 3以上の値
  • 3以下4以上の値
  • 1が含まれている数字

色々なラムダ式

 result
4
6
4
5
2

その他にも色々と試してみてくださいね。

サルモリ
色々なラムダ式を作ってみよう!

まとめ

今回はデリゲートの書き方からラムダ式の書き方に変換していく記事でした。

ラムダ式って何?ということが少しでも解消されたと思います。全て覚える必要もないので、流れだけでも覚えてくれるといいでしょう。

次の記事はクラスCalcのdelegateの宣言を解消したい方向けの記事を書きたいと思います。

今回も最後まで見て頂き有難うございました。

他のLinqの記事についてはこちら

-C#のLinqのメソッド一覧

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock