2013-03-28 31 views
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的列表泛型列表

回答

0

如何簡單地

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

對於一個簡單的Where我喜歡的方法來調用。你想要一個List(Of OrderDetail)而不是一個IEnumerable(Of OrderDetail),所以你可以調用ToList()擴展方法。

1

剛包裹查詢在列表構造:

Dim NewItemList = New List(Of OrderDetail)(From Item As OrderDetail In OrderInfoDetails Where Item.Status = EnumOrderStatus.Taken Select Item) 
0

使用Where(...)方法通過lambda表達式的Status屬性等效測試,以EnumOrderStatus.Taken,然後調用ToList()方法