C#类似版本号有多个分割符可以产生的排列组合,类似版本号比较
程序员文章站
2022-04-10 16:22:05
我采用asp.net进行演示 送给有缘人吧,可以获得类似版本号的功能,也可以对比两个版本号,我这里是其他需要用逗号分割的 ......
我采用asp.net进行演示
送给有缘人吧,可以获得类似版本号的功能,也可以对比两个版本号,我这里是其他需要用逗号分割的
using System; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { var b = Request.QueryString["b"]; if (string.IsNullOrEmpty(b)) { b = "0,3,5"; } var a = b;//GetNewBb("2,3,5", b);//没有解决低位重新计算 while (a != "2,3,5") { b = a; a = GetNewVersion("2,3,5", b); Response.Write(a + "<br />"); } } private string GetNewVersion(string max, string current,char separator=',') { var a = max.Split(separator);//分割字符 var b = current.Split(separator);//分割字符2 var flag = true;//设第一个大 for (int i = a.Length - 1; i > 0; i--) { if (int.Parse(b[i]) < int.Parse(a[i])) { b[i] = (int.Parse(b[i]) + 1).ToString(); break; } if (i - 1 >= 0&& int.Parse(b[i-1]) < int.Parse(a[i-1])) { for (var j = i; j < a.Length; j++) { b[j] = "0"; } b[i-1] = (int.Parse(b[i-1]) + 1).ToString(); break; } } for (int k = 0; k < a.Length-1; k++) { if (int.Parse(a[k]) < int.Parse(b[k])) { flag = false;//说明current是大的如果比较大小,改返回为bool,最后return flag即可 break; } } return string.Join(",", b); } }
上一篇: vue-router实现tab标签页(单页面)详解
下一篇: ADO.NET