それではまず,ラムダ式を使わないコードから書いていきます。最終的にはラムダ式にしますが,前述したとおり,段階を踏んでいかないとラムダ式は理解できないので,順番にやっていきます。ですので,最初はラムダ式を一切使わないコードか書いていきます。
前回作成したbutton1_Clickイベントの中に,次のように記述します。
private void button1_Click(object sender, EventArgs e) { //ストリングの配列に5つの文字を入れる //文字数を1~5にする。Aは1文字,Bは2文字という感じで //意図的に文字数も変えている var values = new string[] { "A", "BB", "CCC", "DDDD", "EEEEE" }; //結果を入れるリスト var result = new List(); //3文字以上の文字列をresultに格納する foreach (var val in values) { if (val.Length >= 3) { result.Add(val); } } //結果を出力 //Joinは第1引数を区切り文字にしてリストを文字結合して出力する Console.WriteLine(string.Join(",", result)); }
コードの意味はコメントで記載したので,特に解説しなくてもわかると思いますが,valuesというstringの配列に文字列を5つ入れています。これは「Aは1文字」,「Bは2文字」といった感じで,意図的に文字数をずらしています。これは後で「3文字以上の文字を取得」などの使い方をするためです。「result」は結果を入れるリストとして生成し,その中に,次のforeach文で,3文字以上の文字列を追加するように実装しています。最後のConsole.WriteLineの部分で,resultの中身を「出力ウィンドウ」に表示しています。string.Joinを使うことで,第1引数のカンマ区切りでresultの文字が連結されて出力されるように実装しています。
ここまで記述したら,一度実行してみます。キーボードのF5キーを押下するか,VisualStudioの開始ボタンを押して,実行してください。
開始すると,Form1の画面が起動するので,button1ボタンを押下します。
「出力ウィンドウ」に結果が表示されるので,確認します。出力ウィンドウが表示されていない場合は,メニューの「表示」から「出力」を選択することで表示できます。
button1ボタンを押下すると結果が表示されるはずです。「CCC,DDDD,EEEEE」と表示されていますね。今回は3文字以上の文字列を取得するように実装しているので,1文字のAと2文字のBは出力されず,C,D,Eが出力される結果となります。ここまではラムダ式などは関係なく,普通のC#の実装なので,当然この結果になることはご理解いただけると思います。ここまでが理解できない場合は,もう少し基礎的なレベルの文法を他の書籍や動画で学んでから,再び読み始めていただいた方がいいかもしれません。
今回はラムダなしの書き方で3文字以上の文字列を検索するロジックを記載しました,今後は,このコードを変形させながら,最終的にはラムダ式が理解できるよう進めていきます。
#02_プロジェクトの作成
#03_ラムダなしで実装
#04_ラムダなしで実装_共通関数
#05_ラムダなしで実装_引数追加
#06_delegateを定義する方法
#07_delegateの使い方
#08_delegate_引数2つ
#09_匿名メソッドの使いかた
#10_Predicateの使い方
#コラム_C#の歴史とここまでのまとめ
#11_ラムダ式の書き方
#12_ラムダ式の実装
#13_FuncとActionとは
#14_Funcの実装とラムダ式複数パラメータの書き方
#15_ラムダの右辺が複数行の時の書き方
#16_Actionのパラメータありの実装
#17_Actionのパラメータありとラムダ式の書き方
#18_Actionのパラメータなしと引数なしのラムダ式の書き方
#19_コレクションに対する代表的なラムダ式の書き方
#20_カスタムクラスのコレクションに対するラムダの書き方