VB.NETのFor Each
ループにSQLのWHERE句と類似のものを使用できますか? I.E。VB.NETのFor Eachループで 'Where'節をシミュレートする
FOR EACH event IN events
'WHERE eventdate=getdate
NEXT
VB.NETのFor Each
ループにSQLのWHERE句と類似のものを使用できますか? I.E。VB.NETのFor Eachループで 'Where'節をシミュレートする
FOR EACH event IN events
'WHERE eventdate=getdate
NEXT
それは(.NET 3.5以上)
For Each event in events.Where(Function(x) x.eventdate = getdate)
'Process event
Next
と非LINQの(だろう。ネット2.0以下)LINQで
For Each event in events
If event.eventdate = getdate Then
'Process event
End If
Next
ループごとに説明していることはできません。あなたはCの#forループでそれを行うことができますが、私はあなたがVB .NETでできるとは思わない。
本当にこれを解決する方法は複数あります。
一つの方法は、これを行うには、次のようになります。
For Each event As Event in events
If eventdate = getdate then
Continue For
End If
Next
また、それは、LINQを使用して行うことができますが、それはあなたを助けるならば、それは、この場合には議論の余地があります。
それは確かに、この例では、あなたが軌道に乗るために十分でなければなりません:LINQで
For Each dvr As DataRowView In dv
If dvr("IsVisible") = False Then
Continue For
End If
' Do something here
Next
:
For Each p As Person In (From pers In Persons Where pers.Firstname = "Stefan")
'Only handle persons with first name "Stefan"
MsgBox(p.LastName)
Next
End Sub
+1、それは私が与えた答えです。しかし、最後に "Select pers"の必要はありません。 –
ヤコブ、私は最終的に "select pers"を省略できず、投稿する前にテストすることができませんでしたが、今答えを編集しました。ポイントをありがとう! – Stefan
私の2セント:はい、LINQ /拡張メソッドを使用して
Public Shared Sub Show()
Dim filtredEvents As List(Of Event) = New List(Of Event)().FindAll(Function (ByVal e As Event)
Return (e.EventDate = DateTime.Today)
End Function)
Dim anEvent As Event
For Each anEvent In filtredEvents
Console.WriteLine(anEvent.EventDate)
Next
End Sub
:
あなたは.FindAll(Tの)一覧にVB 8.0(.NET Framework 2.0を)を使用している場合。どのバージョンのVB/.NETを使用していますか? –