对1,3,4,6,7,8组合显示成“1,3-4,6-8”方法

/// <summary>
        /// 对期刊装订库的年卷期进行组合
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static string QueueString(string input)
        {
            var arr = new System.Collections.ArrayList();
            var lines = input.Split(‘,‘).ToList();
            lines = lines.OrderBy(x => int.Parse(x)).ToList();
            int min, max, tmp = 1;
            max = min = int.Parse(lines[0]);
            foreach (var line in lines)
            {
                tmp = int.Parse(line);
                if ((tmp - max) > 1)
                {
                    if (min == max)
                    {
                        arr.Add(string.Format("{0}", max));
                        max = min = tmp;
                    }
                    else
                    {
                        arr.Add(string.Format("{0}-{1}", min, max));
                        max = min = tmp;
                    }
                }
                else
                {
                    max = tmp;
                }
            }
            if ((tmp == min) || (tmp == max))
            {
                arr.Add(string.Format("{0}-{1}", min, max));
            }
            return string.Join(",", arr.ToArray());
        }
时间: 2024-10-13 22:48:57

对1,3,4,6,7,8组合显示成“1,3-4,6-8”方法的相关文章

组合框里添加复选框的方法(使用勾选的假象,用图片代替而已,并非QT原生支持)

组合框可以看作是列表框和文本框的组合,因其占据的空间少,使用操作方便,常被界面设计人员用于界面开发设计中,在有限个输入的条件下,组合框常用来代替文本框,这样从用户使用角度来看,更趋人性化,所见即所得.然好的控件永远敢不上应用的步伐,有时常规控件并不能满足应用的需要,经常需要在现有的控件上做扩展.有些应用需要在组合框的列表框的每一项前加复选框,以便可以控制列表框每一项的状态(选中还是未选中),显然现有的组合框(列表框+文本框的组合)不能满足应用要求.那么怎么得到一个超强组合框(列表框+文本框+复选

编写一个函数isMerge,判断一个字符串str是否可以由其他两个字符串part1和part2“组合”而成

编写一个函数isMerge,判断一个字符串str是否可以由其他两个字符串part1和part2“组合”而成.“组合 ”的规则如下: 1). str中的每个字母要么来自于part1,要么来自于part2; 2). part1和part2中字母的顺序与str中字母的顺序相同. 例如: "codewars"由"cdw"和"oears"组合而成: s: c o d e w a r s = codewars part1: c d w = cdw part2

多个 label checkbox 组合 显示在同一个水平线上[前提Bootstrap框架]

<th align="left" valign="middle"> <label class="checkbox inline font-size"> <input type="checkbox" id="goods_server_name" name="goods_server_name[]" value=" 假一赔十 "> 假一

Oracle使用游标查询指定数据表的所有字段名称组合而成的字符串

应用场合:参考网上查询数据表的所有字段名代码,使用游标生成指定单个表的所有字段名跟逗号组成的用于select  逗号隔开的字段名列表 from字符串等场合. 查询结果输出如下: 当前数据表TB_UD_USER的字段列表字符串为AH,BIRTHPLACE,BM,CELLPHONE,CJGZRQ,DEPARTMENT2,DJJID,GZCX,GZKH,GZSFZH,HJDZ,HYZK,ID,JHRQ,JTZZ,LAFX_LD,LJDZ,LLY,LXDH,NAME,NXDH,POLICENUMBER,

Python中unittest测试根据不同参数组合产生单独的test case的解决方法

在某种情况下,需要用不同的参数组合测试同样的行为,你希望从test case的执行结果上知道在测试什么,而不是单单得到一个大的 test case:此时如果仅仅写一个test case并用内嵌循环来进行,那么其中一个除了错误,很难从测试结果里边看出来. 问题的关键在于是否有办法根据输入参数的不同组合产生出对应的test case:譬如你有10组数据,那么得到10个test case,当然不适用纯手工的方式写那么多个test_成员函数. 一种可能的思路是不利用unittest.TestCase这个

IOS 富文本 ,设置行间距、字间距,计算高度(转载组合而成)

一 计算高度 -(CGFloat)getSpaceLabelHeight:(NSString*)str withFont:(UIFont*)font withWidth:(CGFloat)width { NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init]; paraStyle.lineBreakMode = NSLineBreakByCharWrapping; paraStyle.alignmen

修改ECSHOP系统红包序列号规律

ECSHOP系统线下发放红包时系统生成的红包序列号是在10000的基础上增加四位随机数字.如果当我们要发放大额度红包的时候,这样的序列号规则难免给人不安全的感觉,万一真的有哪个无聊的人,用一天时间来蒙几个红包序列号出来,那就亏大了.因为最多只要试10000次就可以了,所以我们需要更改一下系统的红包序列号发放规则,让红包的序列号是由a-z,A-Z,0-9的字符组合而成,下面给出修改方法: 1.修改ecs_user_bonus表中bonus_sn字段的数据类型 ECSHOP 2.7.2中该字段类型为

Async/Await 异步编程中的最佳做法

近日来,涌现了许多关于 Microsoft .NET Framework 4.5 中新增了对 async 和 await 支持的信息. 本文旨在作为学习异步编程的“第二步”:我假设您已阅读过有关这一方面的至少一篇介绍性文章. 本文不提供任何新内容,Stack Overflow.MSDN 论坛和 async/await FAQ 这类在线资源提供了同样的建议. 本文只重点介绍一些淹没在文档海洋中的最佳做法. 本文中的最佳做法更大程度上是“指导原则”,而不是实际规则. 其中每个指导原则都有一些例外情况

异步编程中的最佳做法

原文链接 近日来,涌现了许多关于 Microsoft .NET Framework 4.5 中新增了对 async 和 await 支持的信息. 本文旨在作为学习异步编程的“第二步”:我假设您已阅读过有关这一方面的至少一篇介绍性文章. 本文不提供任何新内容,Stack Overflow.MSDN 论坛和 async/await FAQ 这类在线资源提供了同样的建议. 本文只重点介绍一些淹没在文档海洋中的最佳做法. 本文中的最佳做法更大程度上是“指导原则”,而不是实际规则. 其中每个指导原则都有一