[問題] Linq 統整連續序號

看板C_Sharp (C#)作者 (阿風~~)時間3年前 (2020/07/01 20:26), 編輯推噓3(3015)
留言18則, 8人參與, 3年前最新討論串1/1
各位大大: 我有一個字串陣列 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

07/01 20:50, 3年前 , 1F
orderby len, then by value
07/01 20:50, 1F

07/01 20:55, 3年前 , 2F
其實你這個只要OrderBy value就好了 嘻嘻
07/01 20:55, 2F

07/01 22:13, 3年前 , 3F
我的意思是,不是只要排序,是要變成 1-3這樣
07/01 22:13, 3F

07/01 22:16, 3年前 , 4F
你還是要先排序好,然後一個一個比?
07/01 22:16, 4F

07/01 22:16, 3年前 , 5F
例如123,我顯示出1-3,連續的序號,會只顯示頭跟尾
07/01 22:16, 5F

07/01 22:16, 3年前 , 6F
遇到純數值就判斷跟前面一個差1
07/01 22:16, 6F

07/01 22:17, 3年前 , 7F
如果非純數值就做字串拆解拿出數值部份去比吧
07/01 22:17, 7F

07/01 22:17, 3年前 , 8F
我覺得先把如果你用人眼+人腦的情況下會怎麼去達成需求
07/01 22:17, 8F

07/01 22:17, 3年前 , 9F
條列式的寫出來,你可能會比較好轉變成 codeY
07/01 22:17, 9F

07/01 22:25, 3年前 , 10F
判斷是不是純數值可以用 int.TryParse 或是 Regex 吧@@?
07/01 22:25, 10F

07/02 08:16, 3年前 , 11F
對,目前我是用這樣的方式,但我想有沒有更好的方法
07/02 08:16, 11F

07/07 19:40, 3年前 , 12F
如果格式確定純數字和英文+數字只有這兩種,那就先轉成數
07/07 19:40, 12F

07/07 19:40, 3年前 , 13F
值,再排序,最後掃一次整理即可
07/07 19:40, 13F

07/07 19:42, 3年前 , 14F
至於怎麼轉數值,看你的C1是HEX還是EXCEL cell,還有進位
07/07 19:42, 14F

07/07 19:42, 3年前 , 15F
邊界是不是也要串成一組
07/07 19:42, 15F

07/09 15:12, 3年前 , 16F
自己定義一個擴充方法吧
07/09 15:12, 16F

07/10 05:38, 3年前 , 17F
只想到排再手動掃
07/10 05:38, 17F

07/11 02:39, 3年前 , 18F
07/11 02:39, 18F
文章代碼(AID): #1U_83nC8 (C_Sharp)
文章代碼(AID): #1U_83nC8 (C_Sharp)