2009-05-11 5 views
1
Dim classCodeDetails As List(Of ClassCodeDetail) =  
    db.ClassCodeHeaders.Single(Function(cch) 
     cch.CLCH_ID = classCodeHeaderId 
    ).ClassCodeDetails.ToList() 

classCodeDetails.Sort(Function(c1, c2) 
    c1.Make.MAKE_English.CompareTo(c2.Make.MAKE_English) 
) 

Ma question est comment puis-je trier sur plusieurs attributs? Je veux trier d'abord par Make.MAKE_English, puis Par Model.MODL_English.IList (Of T) .Sort aide

Comment l'implémenter?

Merci,
~ ck

+0

Il est toujours utile d'obtenir une bonne réponse si vous utilisez la langue que vous utilisez. –

Répondre

2

Si vous n'avez pas besoin de trier en place, vous pouvez utiliser la fonction OrderBy:

Dim sortedList = list.OrderBy(Function(x) x.Prop1).ThenBy(Function(x) x.Prop2) 

Votre exemple serait:

Dim classCodeDetails As List(Of ClassCodeDetail) = _ 
    db.ClassCodeHeaders.Single(Function(cch) cch.CLCH_ID = classCodeHeaderId).ClassCodeDetails _ 
    .OrderBy(Function(c1) c1.Make.MAKE_English) _ 
    .ThenBy(Function(c1) c1.Make.MODL_English) _ 
    .ToList() 

En fait, c'est la bonne façon de faire cela (semble que vous utilisez LINQ to SQL) car il va utiliser ORDER BY dans le S généré Instruction QL pour trier les données au lieu de trier manuellement sur le client.

Questions connexes