自定义集合/枚举 - 如何过滤返回的集合?
问题描述:
目前,我有以下代码...自定义集合/枚举 - 如何过滤返回的集合?
For Each Ord as clsOrder in Orders
If NOT Ord.Status = voided then
'do stuff to all orders that are not voided...
endif
Next
我想知道是,如果有一种方法来获取返回/列举收集到甚至没有返回被作废,所以我不会需要嵌套的项目如果声明,以避免这些?某种自定义枚举器或什么?
感谢, 道格
答
您可以用Where
clause过滤收集,像
For Each Ord as clsOrder in Orders.Where(Function(o) Ord.Status != voided)
...
Next
答
您可以使用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
注意,这是不超过做你张贴的方式更快,但它是一个小更易于阅读
这并不需要什么参考?我似乎没有在我的收藏对象上。.. – kingfenix
您定位的是什么版本的.NET框架? –
.NET Framework 4 – kingfenix