Je suis un ours de temps pour que cela fonctionne. J'ai un List(Of MyItem)
appelé Items
qui a une propriété OrderId
sur eux. De ces éléments, je veux créer une liste de Order
s. Certains articles auront le même OrderId
donc je veux essayer de grouper par OrderId
. Je veux ensuite trier par date. Voici ce que j'ai jusqu'à présent:VB.NET GroupBy Déclaration 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
Ceci, bien sûr, ne compile pas, et je reçois l'erreur:
Value of type 'System.Collections.Generic.List(Of System.Linq.IGrouping(Of Order, Order))' cannot be converted to 'System.Collections.Generic.List(Of Order))'
J'ai la partie où est indiquée en gras, je pense que le problème est, mais je n'ai aucune idée de comment le réparer. En outre, il a fonctionné correctement (sauf qu'il y avait des valeurs en double) avant d'ajouter l'instruction .GroupBy
. Quelqu'un a des idées?
Merci
EDIT
Fondamentalement, je veux ceci:
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
Est-ce que les articles avec le même orderid ont la même date? –
les articles n'ont pas de dates. Fondamentalement, j'utilise la liste des éléments pour saisir les OrderIds pour faire les bons ordres, mais je ne veux pas dupes. Je me sens comme je le rends plus difficile que cela doit être: \ – Jason
Alors vraiment vous voulez juste une liste de commandes uniques? –