3

現在のアプリケーションのバージョン番号を分割しようとしていますが、先頭のゼロが削除されています。

先頭のゼロを削除しないように分割を変更するにはどうすればよいですか?

currentVersionNo を取得する:

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は任意の文字列ではなく、4 つの整数です。先頭のゼロは無関係であるため、文字列に変換するときに含まれません。ではなく、ここで情報が失われ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 に答える