C#でラムダ式を書く方法 #05_ラムダなしで実装_引数追加

当サイトではアフィリエイト広告を利用しています。

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

前回はメソッドを作って,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文字以上の文字列だけが出力されていることが確認できました。