加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何编码复选框以获取模式输出解释如下

发布时间:2020-12-15 21:56:10 所属栏目:百科 来源:网络整理
导读:我正在研究c#应用程序,我想完成以下任务: 我有12个项目的12个复选框,用户可以检查任何复选框. 如果选中复选框3,4,5,6,8,10,11,12,我想显示以下输出. You have selected items 3-6,10-12. 规则: 当连续数字组数量为3或大于3时,显示分组,如3-6 否则显示个人
我正在研究c#应用程序,我想完成以下任务:

我有12个项目的12个复选框,用户可以检查任何复选框.
如果选中复选框3,4,5,6,8,10,11,12,我想显示以下输出.

You have selected items 3-6,10-12.

规则:

当连续数字组数量为3或大于3时,显示分组,如3-6

否则显示个人号码. 8

解决方法

首先,我建议您在字符串中附加所有复选框的值,如您所示.

功能调用:

string data = "3,7,12";
 string res = GetResultString(data);

功能 :

string GetResultString(string data)
    {
        string[] arrData = data.Split(',').ToArray();
        List<int> lstData = new List<int>();
        foreach (string item in arrData)
        {
            lstData.Add(Convert.ToInt16(item));
        }

        lstData.Sort();
        string finalStr = string.Empty;
        if (lstData.Count > 0)
        {
            int start = lstData[0];
            int end = start;
            finalStr = string.Empty;
            for (int index = 1; index < lstData.Count; index++)
            {
                if (end + 1 == lstData[index])
                {
                    end = lstData[index];
                }
                else
                {
                    finalStr += appendResult(start,end);
                    start = -1;
                }

                if (start == -1)
                {
                    start = lstData[index];
                    end = lstData[index];
                }
            }
            finalStr += appendResult(start,end);
        }
        finalStr = finalStr.Trim(',');
        return finalStr;
    }

    string appendResult(int start,int end)
    {
        string res = string.Empty;
        if (end - start > 1)
        {
            res += start + "-" + end.ToString() + ",";
            start = -1;
        }
        else
        {
            while (start <= end)
            {
                res += start.ToString() + ",";
                start++;
            }
        }
        return res;
    }

希望这能完成你的工作,

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读