我正在研究c#应用程序,我想完成以下任务:
我有12个项目的12个复选框,用户可以检查任何复选框.
如果选中复选框3,4,5,6,8,10,11,12,我想显示以下输出.
You have selected items 3-6,10-12.
规则:
否则显示个人号码. 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; }
希望这能完成你的工作,
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。