1

短代码:

    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 列表转换为通用列表

4

3 回答 3

1

只需将查询包装在 List 构造函数中:

Dim NewItemList = New List(Of OrderDetail)(From Item As OrderDetail In OrderInfoDetails Where Item.Status = EnumOrderStatus.Taken Select Item)
于 2013-03-28T09:53:50.400 回答
0

使用通过 lambda 表达式Where(...)测试Status属性是否等效的方法,然后调用 ToList() 方法EnumOrderStatus.Taken

于 2013-03-28T09:55:39.213 回答
0

简单点怎么样

Dim NewItemList = OrderInfoDetails.Where(Function(e) e.Status = EnumOrderStatus.Taken).ToList()

简单来说,Where我更喜欢方法语法。你想要 aList(Of OrderDetail)而不是 a IEnumerable(Of OrderDetail),所以你可以调用ToList()扩展方法。

于 2013-03-28T09:55:46.813 回答