前回はメソッドを作って,3文字以上の文字列を取得するロジックを作成しました。今回は,メソッドに引数を渡して,任意の文字数以上の文字列を取得するロジックを作成してみます。
新しいメソッドの追加
まずは新しいメソッドを作成します。といっても前回のGetValue1のメソッドとほとんど同じです。違いはメソッド名がGetValue2になっていることと,intのlenという引数を追加し,3桁で比較していた部分をlenに変更しています。
private string[] GetValue2(string[] values, int len) { var result = new List(); foreach (var val in values) { if (val.Length >= len) { result.Add(val); } } return result.ToArray(); }
len引数を追加し,桁数の比較に使用することで,今まで3桁以上の文字列を取得していた部分が,引数で自由な桁数で比較できるようになります。
ボタンの追加
今作成したGetValue2メソッドを呼び出すためのコードを記述するために,画面に新しいボタンを追加します。
ボタンを追加したらダブルクリックをしてクリックイベントを自動生成し,次のようにロジックを記述します。
private void button2_Click(object sender, EventArgs e) { var values = new string[] { "A", "BB", "CCC", "DDDD", "EEEEE" }; var result = GetValue2(values, 4); Console.WriteLine(string.Join(",", result)); }
valuesの配列は前回までと同じで,桁数の異なる5つの文字列です。resultには先ほど作成したGetValue2の結果を返却するようにしていますが,ここで,第2引数を4とすることで,4文字以上の文字列を取得するように記述しています。最後にConsole.WriteLineの部分で,結果を出力ウィンドウに表示させています。
実行
この状態で実行すると,4文字以上の文字列だけが取得されるはずです。実行してbutton2を押下し,出力ウィンドウを確認してみましょう。
いままで出力されていたCが出力されなくなり,DとEだけが出力されています。これで4文字以上の文字列だけが出力されていることが確認できました。
#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_カスタムクラスのコレクションに対するラムダの書き方