2009-05-11 4 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) 
) 

Meine Frage ist, wie kann ich nach mehreren Attributen sortieren? Ich möchte zuerst nach Make.MAKE_English sortieren, dann nach Model.MODL_English.IList (Of T) .Sortierhilfe

Wie implementiere ich das?

Danke,
~ ck

+0

Es hilft immer, eine gute Antwort zu erhalten, wenn Sie mit welcher Sprache kennzeichnen, die Sie verwenden. –

Antwort

2

Wenn Sie an Ort und Stelle nicht sortieren müssen, könnten Sie die OrderBy Funktion:

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

Ihr Beispiel wäre:

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() 

In der Tat ist dies der richtige Weg, dies zu tun (scheint, dass Sie LINQ to SQL verwenden), da es ORDER BY in der generierten S verwenden wird QL-Anweisung zum Sortieren von Daten, anstatt sie manuell auf dem Client zu sortieren.