我有一个时间让这个工作。我有一个叫做Items
的List(Of MyItem)
,它们有一个OrderId
属性。从这些项目中,我想创建一个Order
s的列表。有些项目将有相同的OrderId
,所以我想尝试按OrderId
分组。然后我想按日期排序。这是我到目前为止有:VB.NET GroupBy LINQ声明
Public ReadOnly Property AllOrders() As List(Of Order)
Get
Return Items.Select(Function(i As MyItem) New Order(i.OrderID)) _
.GroupBy(Function(o As Order) New Order(o.OrderID)) _
.OrderBy(Function(o As Order) o.DateOrdered).ToList
End Get
End Property
这当然不编译,我得到的错误:
Value of type 'System.Collections.Generic.List(Of System.Linq.IGrouping(Of Order, Order))' cannot be converted to 'System.Collections.Generic.List(Of Order))'
我加粗,我认为这个问题是一部分,但我不知道如何解决它。此外,它还用于在添加.GroupBy
语句之前正常工作(除了存在重复值)。有人有主意吗?
感谢
编辑
基本上,我想这一点:
List of Existing Items Take List and Turn it into List(Of MyItem): List(Of Order): ItemId OrderId OrderID 1 100 100 2 102 102 3 100
不要使用相同的OrderID项具有相同日期前添加一个排序依据的条款? – 2010-05-14 04:56:21
这些项目没有日期。基本上我使用物品清单来抓取OrderIds来做出正确的订单,但我不想要。我觉得我比它更难:\ – Jason 2010-05-14 04:59:40
所以你真的想要一个独特的orderids列表? – 2010-05-14 05:01:58