2014-03-31 116 views
0

目前,我有以下代码...自定义集合/枚举 - 如何过滤返回的集合?

For Each Ord as clsOrder in Orders 
    If NOT Ord.Status = voided then 
    'do stuff to all orders that are not voided... 
    endif 
Next 

我想知道是,如果有一种方法来获取返回/列举收集到甚至没有返回被作废,所以我不会需要嵌套的项目如果声明,以避免这些?某种自定义枚举器或什么?

感谢, 道格

回答

0

您可以用Where clause过滤收集,像

For Each Ord as clsOrder in Orders.Where(Function(o) Ord.Status != voided) 
    ... 
Next 
0

您可以使用Lambda expression Where子句像这样(在.NET 3.5及更高版本):

Public Class clsOrder 
    Public Property Status As Integer 
End Class 

Dim Orders As New List(Of clsOrder) 

'populate Orders here 

For Each Ord As clsOrder In Orders.Where(Function(x) x.Status <> voided) 

Next 

注意,这是不超过做你张贴的方式更快,但它是一个小更易于阅读

+0

这并不需要什么参考?我似乎没有在我的收藏对象上。.. – kingfenix

+0

您定位的是什么版本的.NET框架? –

+0

.NET Framework 4 – kingfenix