2016-08-17 2 views
-3

Ich habe eine Liste mit vielen Zahlen drin. Aber sie werden als Zeichenfolgen wegen einiger zusätzlicher Buchstaben gespeichert.Sortierung String in C# und Entity Framework

ich eine Liste haben, die eine String-Spalte enthält genannt jointNumber meine Daten ist wie folgt:

1b 
a1 
10 
15 
2a 
20 
21 
250 
3 
34 
368 

Code:

List<ViewTestPackageHistorySheet> lstTestPackageHistorySheets = 
     _reportTestPackageHistorySheetRepository.ShowReport(Id) 
     .OrderBy(i => new { i.LineNumber, i.JointNumber}).ToList(); 

Aber es funktioniert nicht. Warum? Wie Sie sehen können, sortiere ich es basierend auf zwei Spalten, die erste Spalte funktioniert ich meine linenumber, aber es sortiert nicht die Daten basierend auf jointnumber.

+0

'neu {i.LineNumber, i.JointNumber}' <- das ist in sich nicht sortierbar. Was Sie wollen, ist 'OrderBy (i => i.LineNumber) .ThenBy (i => i.JointNumber)' – Igor

+0

Was Sie suchen, heißt "natürliche Sortierung", gibt es vorhandene Implementierungen von diesem für C#, wenn Sie googeln Sie. –

+0

Was meinen Sie, "als Strings wegen einiger zusätzlicher Buchstaben gespeichert"? Können Sie einige Beispiele hinzufügen, wie das in Ihren Daten aussieht? – RoadieRich

Antwort

0

Ohne auf den Code überhaupt zu schauen, kann ich sehen, dass Ihre Liste bereits in alphabetischer Reihenfolge ist. Haben Sie Ihre Zeichenketten überall in numerische Datentypen konvertiert?