2011-01-11 15 views
0
public static SelectList HolidayDays() 
{ 
    SelectList retval = GenerateKeyValueList<HolidayCity>(HolidayCityHelper.GetFriendlyName, HolidayCity.NotSet); 

    //sort 
    retval.OrderBy(i => i.Text == "New York") 
      .ThenBy(i => i.Text == "London") 
      .ThenBy(i => i.Text); 

    return retval; 
} 

Warum wird die SelectList-Sortierung überhaupt nicht ausgeführt? Es bleibt in der gleichen Reihenfolge, in der es sich befindet, bevor ich die Sortieroperationen durchführe, aber es kompiliert und läuft ohne Fehler.SelectList wird überhaupt nicht sortiert

Antwort

4

OrderBy und ThenBy geben Sie eine Sammlung zurück, für die Sie keinen Rückgabewert festlegen.


SelectList retval = GenerateKeyValueList<HolidayCity>(HolidayCityHelper.GetFriendlyName, HolidayCity.NotSet); 

return new SelectList(retval 
     .OrderByDescending(i => i.Text == "New York") 
     .ThenByDescending(i => i.Text == "London") 
     .ThenBy(i => i.Text).ToList(), 
    "Value", "Text"); 
+0

Hmm, jetzt scheine ich diesen Fehler zu bekommen: Fehler Kann Typ 'System.Linq.IOrderedEnumerable ' nicht implizit konvertieren zu ‚System.Web. Mvc.SelectList '. Eine explizite Konvertierung existiert (fehlt Ihnen eine Besetzung?) Ich habe es gegossen, aber ist das der richtige Zug? – slandau

+0

Haben Sie Ihre Bearbeitung;) – slandau

+0

Eigentlich scheint dies Ordnung alles Ordnung zu bestellen, aber dann die Liste mit "London, New York" beenden, anstatt die Liste mit "New York, London" zu beginnen. Ich kann das nicht herausfinden. – slandau

Verwandte Themen