3

我正在尝试拆分我当前的应用程序版本号,但删除了前导零。

如何更改我的拆分以不删除前导零。

获取当前版本号:

startUpAssembly.GetName().Version.ToString()

所以对于测试:

string versionNo = "7.01.7000.0";

string[] versionInfo = versionNo.Split('.');

这会产生:

7
1 //Here i need it to be 01
7000
0

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

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

4

1 回答 1

20

ASystem.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
    }
}

基本上,你的计划存在根本缺陷,你应该改变你的设计。您不应该试图代表“7.01.7000.0”的版本开始。

此外,您应该退后一步,考虑一下您的诊断程序:是什么让您认为这String.Split是罪魁祸首?为什么你的第一步不看结果startUpAssembly.GetName().Version.ToString()

于 2012-11-20T10:02:26.677 回答