String.Split()删除前导零

Wil*_*lem 3 .net c# string split

我试图拆分我当前的应用程序版本号,但删除前导零.

如何更改分割以不删除前导零.

得到currentVersionNo:

startUpAssembly.GetName().Version.ToString()
Run Code Online (Sandbox Code Playgroud)

所以测试:

string versionNo = "7.01.7000.0";

string[] versionInfo = versionNo.Split('.');
Run Code Online (Sandbox Code Playgroud)

这会产生:

7
1 //Here i need it to be 01
7000
0
Run Code Online (Sandbox Code Playgroud)

我需要它不要删除前导零.我如何实现这一目标?

也许使用正则表达式有更好的解决方案?

Jon*_*eet 20

A System.Version不是任意字符串 - 它是四个整数.前导零是无关紧要的,因此在转换回字符串时不包括在内.这就是你丢失信息的地方 - 而不是String.Split.你可以很容易地看到这个:

using System;

class Test
{
    static void Main()
    {
        Version version = new Version("7.01.7000.0");
        Console.WriteLine(version); // 7.1.7000.0
    }
}
Run Code Online (Sandbox Code Playgroud)

基本上,您的计划存在根本缺陷,您应该更改您的设计.你不应该试图代表一个版本的"7.01.7000.0"开始.

另外,你应该退后一步,考虑一下你的诊断程序:是什么让你觉得应该String.Split责怪这里?你为什么不是第一步看结果startUpAssembly.GetName().Version.ToString()

  • @Willem:当然 - 我只是建议你对你的诊断方法做一些反思,让你忽略了这一点.例如,你问题中的代码*不会产生你说它的输出,所以大概是你没有运行它.回顾这个特定的例子可以帮助您改进未来问题的方法. (2认同)