2012-04-03 74 views
2

對不起,我連續詢問了太多問題。將字符串視爲整數來排序字符串

我有這樣一個字符串列表:

「firstnumber-lastnumber」

我想第一個數字在去年數

例如,如果我要進行排序,然後:

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

排序應該是這樣的後:

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

我用這個LINQ查詢:

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

但字符串的邏輯,而不是由INT邏輯此查詢訂購。

,所以如果我有2個和11個我想2來之前11

(排序由串邏輯順序11 2之前,因爲它與「1」開始)

非常感謝任何幫助

+2

你可以更新使用int類型的兩列的數據庫中的任何機會呢?如果您需要進行數字比較,似乎很奇怪將數字存儲爲字符串。 – 2012-04-03 17:05:07

回答

6

使用int.Parse(str)str轉換爲數字。

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