C#でラムダ式を書く方法1

C#でラムダ式を書く方法 #03_ラムダなしで実装

それではまず,ラムダ式を使わないコードから書いていきます。最終的にはラムダ式にしますが,前述したとおり,段階を踏んでいかないとラムダ式は理解できないので,順番にやっていきます。ですので,最初はラムダ式を一切使わないコードか書いていきます。

前回作成したbutton1_Clickイベントの中に,次のように記述します。

コードの意味はコメントで記載したので,特に解説しなくてもわかると思いますが,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文字以上の文字列を検索するロジックを記載しました,今後は,このコードを変形させながら,最終的にはラムダ式が理解できるよう進めていきます。

オブジェクト指向の原則 単一責務の原則

C#を正しい3層構造で造れてますか?

非売品コースを受け取る

#00_はじめに
#01_単一責務の原則とは
#02_原則違反の例
#03_変更理由単位でクラスを分ける
#04_3層構造の例
#05_修正箇所を最小にできる
#06_修正する場所が明確になる
#07_共通化しましょうという話ではない
#08_少々悪いコードでも問題視しない理由
#09_探しやすいコード
#10_クラスは機能ごとに小さく作る
#11_小さなクラスがそれぞれに協調して目的を達成させる
#12_多数の部品群のなかから摘まんで作る
#13_クラスはどこまで小さくすればいいのか
#14_アンダーソン式単一責務の原則
#15_最小カプセルの検証_監視タイマークラス
#16_最小カプセルの検証_受注画面クラス
#17_最小カプセルの検証_ユーザークラス
#18_最小カプセルの検証_商品マスターデータアクセス
#19_登場人物に合わせたモデリングの四角と線
#20_四角と線を最小カプセル化する
#21_アンダーソン式手順
#22_パターンを見つけ出す
#23_プログラミングの自問
#24_さいごに

【参考図書】ピーコックアンダーソンが参考にした書籍一覧