博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#类似版本号有多个分割符可以产生的排列组合,类似版本号比较
阅读量:4647 次
发布时间:2019-06-09

本文共 1241 字,大约阅读时间需要 4 分钟。

  我采用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 + "

  ");

  }

  }

  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);

  }

  }

  复制代码(编辑:雷林鹏 来源:网络)

转载于:https://www.cnblogs.com/pengpeng1208/p/9369947.html

你可能感兴趣的文章
ubuntu下搭建cocos2dx编程环境-上
查看>>
如何查看Web服务器并发请求连接数
查看>>
学好ARM开发的意义
查看>>
Python for Infomatics 第13章 网页服务四(译)
查看>>
Sphinx 全文检索
查看>>
Shell编程(一)
查看>>
[转]Ubuntu10下MySQL搭建Amoeba系列(文章索引)
查看>>
Android模糊效果总结
查看>>
Android开发系列(二十七):使用ProgressDialog创建进度对话框
查看>>
文件系统和数据库的对照
查看>>
使用ASP.NET Atlas编写显示真实进度的ProgressBar(进度条)控件
查看>>
vs.net各版本解决方案相互转换工具
查看>>
PHP配置成功后phpinfo中找不到mysql
查看>>
加速计
查看>>
selinux基本
查看>>
python学习笔记——拾壹
查看>>
Python 包
查看>>
PHP常用的缓存技术汇总
查看>>
setTimeout详解
查看>>
node执行环境
查看>>