■ ラムダ式
ラムダ式の基本構文
Function(左辺) 右辺
ラムダ式構文の左辺
Function() 右辺 ' パラメータがない場合 Function(param) 右辺 ' パラメータが1つの場合 Function(param1, param2) 右辺 ' パラメータが2つ以上の場合
ラムダ式構文の左辺
Function(左辺) 式 Sub(左辺) 式 Function(左辺) 式 式 Return 式 End Function Sub(左辺) 式 式 式 End Sub
参考文献
http://www.atmarkit.co.jp/fdotnet/rapidmaster/rapidmaster_02/rapidmaster_02.htmlhttp://blogs.wankuma.com/chuki/archive/2010/01/06/184707.aspx
http://homepage1.nifty.com/rucio/VBLINQ/LINQ03.htm
■ Linq
サンプル
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button5.Click
'データ配列
Dim companies() = New Company() { _
New Company("X01", "ABC com", 34), _
New Company("X02", "DEF inc", 19), _
New Company("X03", "HIJ com", 15), _
New Company("X04", "KLM inc", 22), _
New Company("X05", "NOP com", 26), _
New Company("X06", "QRS com", 20) _
}
' Sample 1
Dim targetCode As String = Me.TextBox1.Text
Dim name As String = _
companies.Where(Function(p) p.Code.Equals(targetCode)) _
.Select(Function(p) p.Name).FirstOrDefault()
Dim result As String
If String.IsNullOrEmpty(name) Then
result = "Not Found..."
Else
result = String.Format("The Company Name is {0}", name)
End If
Me.Label1.Text = result
' Sample 2
Dim companyList = _
companies.Where(Function(x) x.TotalEmployee > 25) _
.Select(Function(x) New With { _
.Code = x.Code, .Name = x.Name})
Dim result2 As String = String.Empty
For Each com In companyList
result2 = result2 & "Code : " & com.Code & " " & "Name : " & com.Name & "<br />"
Next
' 【出力】
' Code : X01 Name : ABC com
' Code : X05 Name : NOP com
Me.Label2.Text = result2
End Sub
NotInheritable Class Company
Public Sub New()
End Sub
Public Sub New(ByVal code As String, _
ByVal name As String, _
ByVal totalEmployee As Integer)
Me._Code = code
Me._Name = name
Me._TotalEmployee = totalEmployee
End Sub
Private _Code As String
Public Property Code() As String
Get
Return Me._Code
End Get
Set(ByVal value As String)
Me._Code = value
End Set
End Property
Private _Name As String
Public Property Name() As String
Get
Return Me._Name
End Get
Set(ByVal value As String)
Me._Name = value
End Set
End Property
Private _TotalEmployee As Integer
Public Property TotalEmployee() As Integer
Get
Return Me._TotalEmployee
End Get
Set(ByVal value As Integer)
Me._TotalEmployee = value
End Set
End Property
End Class
参考文献
http://pub.ne.jp/rf_app/?entry_id=2702146http://codezine.jp/article/detail/2269?p=4
http://pub.ne.jp/rf_app/?entry_id=2723462
http://homepage1.nifty.com/rucio/VBLINQ/LINQ03.htm
http://itnandemolab.blog70.fc2.com/blog-entry-2407.html