看板 C_Sharp 關於我們 聯絡資訊
各位大大: 我有一個字串陣列 string[] a = new string[]{"1","2","5","7","A8","A6","A7","C1","C3","3","C2"} 我想要整理,是否有什麼演算法,可以達到下方我要的結果,我會用迴圈,只是想知道 linq之類的,可以怎麼寫,想優化一下。 結果: 1-3 5 7 A6-A8 C1-C3 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.183.118.24 (泰國) ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1593606385.A.308.html
airtsubasa: orderby len, then by value 07/01 20:50
sirius65482: 其實你這個只要OrderBy value就好了 嘻嘻 07/01 20:55
wind681201: 我的意思是,不是只要排序,是要變成 1-3這樣 07/01 22:13
awwseed: 你還是要先排序好,然後一個一個比? 07/01 22:16
wind681201: 例如123,我顯示出1-3,連續的序號,會只顯示頭跟尾 07/01 22:16
awwseed: 遇到純數值就判斷跟前面一個差1 07/01 22:16
awwseed: 如果非純數值就做字串拆解拿出數值部份去比吧 07/01 22:17
awwseed: 我覺得先把如果你用人眼+人腦的情況下會怎麼去達成需求 07/01 22:17
awwseed: 條列式的寫出來,你可能會比較好轉變成 codeY 07/01 22:17
awwseed: 判斷是不是純數值可以用 int.TryParse 或是 Regex 吧@@? 07/01 22:25
wind681201: 對,目前我是用這樣的方式,但我想有沒有更好的方法 07/02 08:16
Litfal: 如果格式確定純數字和英文+數字只有這兩種,那就先轉成數 07/07 19:40
Litfal: 值,再排序,最後掃一次整理即可 07/07 19:40
Litfal: 至於怎麼轉數值,看你的C1是HEX還是EXCEL cell,還有進位 07/07 19:42
Litfal: 邊界是不是也要串成一組 07/07 19:42
APTON: 自己定義一個擴充方法吧 07/09 15:12
disabledman: 只想到排再手動掃 07/10 05:38
Timba: 推 07/11 02:39