短代码:
Dim NewItemList As List(Of OrderDetail) = New List(Of OrderDetail)
For Each Item As OrderDetail In OrderInfoDetails
If Item.Status = EnumOrderStatus.Taken Then
NewItemList.Add(Item)
End If
Next
尝试:
Dim NewItemList As List(Of OrderDetail) = From Item As OrderDetail In OrderInfoDetails Where Item.Status = EnumOrderStatus.Taken Select Item
但得到一个错误,说无法将orderdetail列表转换为通用列表
答案 0 :(得分:1)
将查询包装在List构造函数中:
Dim NewItemList = New List(Of OrderDetail)(From Item As OrderDetail In OrderInfoDetails Where Item.Status = EnumOrderStatus.Taken Select Item)
答案 1 :(得分:0)
使用Where(...)
方法通过lambda表达式测试Status
属性与EnumOrderStatus.Taken
的等效性,然后调用ToList()方法
答案 2 :(得分:0)
如何简单地
Dim NewItemList = OrderInfoDetails.Where(Function(e) e.Status = EnumOrderStatus.Taken).ToList()
对于简单的Where
,我更喜欢方法语法。您需要List(Of OrderDetail)
而不是IEnumerable(Of OrderDetail)
,因此您只需拨打ToList()
扩展程序。