我有一個IEnumerable<string>
與像值:排序的IEnumerable <string>
- PP
- pp.10.0
- pp.6.0
- pp.6.1
- pp.8.3
- kp.10.1
- kp
- kp.3.20
...等
我想按字母順序組織它們,但保持與兩位數的值(例如在以上那些與10.0和10.1)以下,個位數的那些。換句話說,整理後應該是這樣的:
- KP
- kp.3.20
- kp.10.1
- PP
- pp.6.0
- pp.6.1
- pp.8.3
- pp.10.0
我嘗試了一個簡單的IEnumerable<string>.OrderBy(x => x, StringComparer.CurrentCultureIgnoreCase)
,但是在這種情況下這不起作用。
還要記住的是,pp
和kp
件可能在他們點爲好,如果你想分裂字符串。
我的確在考慮拆分字符串,所以應該如此。如果這些部分也有點,提供更多示例。一般的想法是,你想通過一些'new {key1 = ...,key2 = ...,value = s}'類型進行排序,該類型提供了一個複合關鍵字,它*具有簡單的詞典排序。 –
「另外請記住,如果您正在考慮拆分字符串,那麼pp和kp部分也可能具有點。」在這種情況下應該如何排序?我不清楚。 –
你想要「自然順序」,如在https://stackoverflow.com/questions/248603/natural-sort-order-in-c-sharp –