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或大于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; } 希望这能完成你的工作, (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |