ラムダ式プログラミング
「ぬ」を探すプログラミング for Visual Basic
それを普通に組むと以下のようになる。
Module TEST Sub Main() '定義および初期化 Dim TEST_STR_ARRY() As String = Nothing '再定義 ReDim TEST_STR_ARRY(9) 'データを配列に格納 TEST_STR_ARRY(0) = "あいうえお" TEST_STR_ARRY(1) = "かきくけこ" TEST_STR_ARRY(2) = "さしすせそ" TEST_STR_ARRY(3) = "たちつてと" TEST_STR_ARRY(4) = "なにぬねの" TEST_STR_ARRY(5) = "はひふへほ" TEST_STR_ARRY(6) = "まみむめも" TEST_STR_ARRY(7) = "やゆよ" TEST_STR_ARRY(8) = "らりるれろ" TEST_STR_ARRY(9) = "わをん" '「ぬ」が含まれる配列探す For i As Integer = 0 To TEST_STR_ARRY.Length - 1 '対象の配列に「ぬ」が入っていたら、メッセージを出力する If InStr(TEST_STR_ARRY(i), "ぬ") Then Console.WriteLine(" " & CStr(i + 1) & "番目の配列に「ぬ」があったよ!") Else Console.WriteLine(" " & CStr(i + 1) & "番目の配列に「ぬ」はないよ。") End If Next Console.ReadKey() End Sub End Module
配列の要素数を決めるとか、ループで1要素ずつ探すとか作業の段取りが大変だ。
そこで、ラムダ式(LINQ)で組むと配列の番号指定や面倒くさいループ処理の記述が省略できる。
Module TEST Sub Main() '定義およびインスタンスの作成 Dim TEST_STR_ARRY As New List(Of String) 'データを配列に格納 TEST_STR_ARRY.Add("あいうえお") TEST_STR_ARRY.Add("かきくけこ") TEST_STR_ARRY.Add("さしすせそ") TEST_STR_ARRY.Add("たちつてと") TEST_STR_ARRY.Add("なにぬねの") TEST_STR_ARRY.Add("はひふへほ") TEST_STR_ARRY.Add("まみむめも") TEST_STR_ARRY.Add("やゆよ") TEST_STR_ARRY.Add("らりるれろ") TEST_STR_ARRY.Add("わをん") '「ぬ」が含まれる配列探す Dim i = TEST_STR_ARRY.FindIndex(Function(aaa) aaa Like "*ぬ*") Console.WriteLine(" " & CStr(i) & "番目の配列に「ぬ」があったよ!") Console.ReadKey() End Sub End Module
見やすいソースコードを書けるように努力をしていきたいものだ。