2009-08-20 32 views

回答

6

在LINQ这将是(.NET 3.5或更高版本)

For Each event in events.Where(Function(x) x.eventdate = getdate) 
     'Process event 
Next 

及非LINQ的(。净2.0或更低)

For Each event in events 
    If event.eventdate = getdate Then 
     'Process event 
    End If 
Next 
0

你不能做你在每个循环中描述的内容。你可以在C#中的for循环中做到这一点,但我不认为你可以在VB.NET中。

你真的有多个选项可以解决这个问题。

一种方法是做到这一点:

For Each event As Event in events 
    If eventdate = getdate then 
     Continue For 
    End If 
Next 

您还可以使用LINQ,但它是在这种情况下值得商榷是否会帮助你。

0

当然是,这个例子应该足以让你去:

For Each dvr As DataRowView In dv 
    If dvr("IsVisible") = False Then 
     Continue For 
    End If 

     ' Do something here 
Next 
2

随着LINQ:

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 
+0

+1,这是我会给出的答案。尽管如此,不需要“选择人”。 – 2009-08-20 05:35:36

+0

Jakob,我不确定我可以省略最后的“select pers”,并且无法在发布前对其进行测试,但现在已经编辑了答案。谢谢你的观点! – Stefan 2009-08-20 13:50:26

1

我的2美分:

如果您使用的列表(Of T)已VB 8.0(.NET Framework 2.0中).FindAll:


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