2014-03-31 148 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