作者wind681201 (阿风~~)
看板C_Sharp
标题[问题] Linq 统整连续序号
时间Wed Jul 1 20:26:21 2020
各位大大:
我有一个字串阵列
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://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1593606385.A.308.html
1F:→ airtsubasa: orderby len, then by value 07/01 20:50
2F:→ sirius65482: 其实你这个只要OrderBy value就好了 嘻嘻 07/01 20:55
3F:→ wind681201: 我的意思是,不是只要排序,是要变成 1-3这样 07/01 22:13
4F:→ awwseed: 你还是要先排序好,然後一个一个比? 07/01 22:16
5F:→ wind681201: 例如123,我显示出1-3,连续的序号,会只显示头跟尾 07/01 22:16
6F:→ awwseed: 遇到纯数值就判断跟前面一个差1 07/01 22:16
7F:→ awwseed: 如果非纯数值就做字串拆解拿出数值部份去比吧 07/01 22:17
8F:→ awwseed: 我觉得先把如果你用人眼+人脑的情况下会怎麽去达成需求 07/01 22:17
9F:→ awwseed: 条列式的写出来,你可能会比较好转变成 codeY 07/01 22:17
10F:→ awwseed: 判断是不是纯数值可以用 int.TryParse 或是 Regex 吧@@? 07/01 22:25
11F:→ wind681201: 对,目前我是用这样的方式,但我想有没有更好的方法 07/02 08:16
12F:推 Litfal: 如果格式确定纯数字和英文+数字只有这两种,那就先转成数 07/07 19:40
13F:→ Litfal: 值,再排序,最後扫一次整理即可 07/07 19:40
14F:→ Litfal: 至於怎麽转数值,看你的C1是HEX还是EXCEL cell,还有进位 07/07 19:42
15F:→ Litfal: 边界是不是也要串成一组 07/07 19:42
16F:推 APTON: 自己定义一个扩充方法吧 07/09 15:12
17F:→ disabledman: 只想到排再手动扫 07/10 05:38
18F:推 Timba: 推 07/11 02:39