重要! 一発じゃ覚えられないので何度も見よう!(ラムダ式) - TejimaTuyoshi/returnread GitHub Wiki

あらかじめ言う

「これが分からないとダメ」

大前提 デリゲート = 「メソッド」の型 型 = 「データ」の型<int,bool,string>

区別方法 ・データ型 = [クラス]or[構造体]

・デリゲート = 戻り値の型・引数の数・引数の型{戻り値の数は「一つ」なので求める必要は無し}※前回を見ること!

ただし、デリゲートは「Action<>」で書けるのであまり使わない。が、読めるようにしておくこと。

「Action a+= Console.Writeline();」のように使用が可能。

ゲーム = 戻り値がvoidなことが多い。(命令した後は任せているため(自分で操作していることはほぼ不可能))

Func<> =戻り値アリ。一番右側にあるものが戻り値。その左にあるのが引数。<引数,戻り値>

例<string,int> = int.Parse(もともとstringだった物をintにしている。)

のようになる。

これを「戻り値があるもの」と覚えないと詰む。

「引数ではない」

これ大事ね。うん。

そしてもう一つ、ラムダ式で重要な部分である[Linq]を使用する。

⓵「Where」を使って条件付けをしたうえで、「あらかじめ区別しているクラス(別のところにある)を使用」して、抽出する。

ただし、「区別できるクラス」が別のところにあることが多いので、見づらい。

これは「やらせたいこと」を【メソッド】として使う必要がある。

⓶「デリゲートを使用する」状態で「匿名メソッド(名前のないメソッド)」を使用する。

大前提として、「var filteredList2 = intArray.Where(delegate(int i)」として匿名にするよ~をする。

条件を入れることで、「使い捨て」として他の場所でも使われないし、遠回しに「使うな」とも表現可能。

(直したいときに使われるとマズいから...)

⓷「デリゲートを使用せず」【ラムダ式(goes to ともいう)】で「匿名メソッド」を使用する。

この場合は、「var filteredList3 = intArray.Where((int i) => { return i > 5; }).ToList();」と

省略&デリゲート無&「矢印を使ってかつ、リターンをする」

⓸さらに省略

    intArray.Where(i => i > 5).ToList().ForEach(i => Console.WriteLine(i));//引数が一個の場合、()を使用,内容が一個={}省略、かつ条件が一つなので一つに

    Console.WriteLine("Hit Enter...");
    Console.ReadLine();

もっとやると、一行に...

intArray Where(i => i > 5).ToList().ForEach(Console.WriteLine)

に、もうワケが分からないよ...(省略部分は省略する)

・同じこと書いてたら省略

・{}が一行なら省略(引数のならね...)(一行のみ)

・条件が単純(一つだったり...)なら省略(一行のみ)

・戻り値

引数の型

など

大丈夫か?ついてこれてるか?...大丈夫。私にもわからん。

なので毎回毎回見返そうね。

⚠️ **GitHub.com Fallback** ⚠️