2012-04-03 13 views
2

Entschuldigung, ich stelle zu viele Fragen hintereinander.Bestellen Sie einen String, indem Sie ihn als Integer betrachten

Ich habe eine Liste von Zeichenketten wie folgt aus:

„firstnumber-lastnumber“

ich es durch erste Zahl und dann von der letzten Nummer

zum Beispiel sortiert werden soll, wenn ich:

"2-43" 
"1-11" 
"1-9" 

nach der Sortierung es so sein sollte:

Ich benutzen diese LINQ-Abfrage:

numbers.OrderBy(s => s.Split('-')[0]).ThenBy(s => s.Split('-')[1]); 

aber diese Abfrage, um sie von String-Logik und nicht durch int Logik.

so, wenn ich 2 und 11 Ich mag 2 kommen vor 11

(die Reihenfolge von String-Logik, um die 11 vor 2, da es mit ‚1‘ beginnt)

Vielen Dank für jeden Hilfe

+2

Jede Chance, die Datenbank int verwenden, um zwei Spalten vom Typ aktualisieren können? Scheint seltsam, Zahlen als String zu speichern, wenn Sie numerische Vergleiche durchführen müssen. –

Antwort

6

int.Parse(str) verwenden, um str in eine Zahl zu konvertieren.

numbers.OrderBy(s => int.Parse(s.Split('-')[0])).ThenBy(s => int.Parse(s.Split('-')[1])); 
Verwandte Themen