-1

バージョン番号を増やすために、SQL データベースから値を取得しようとしています。値は文字列ですが、. を解析して、新しいバージョン番号を作成するために使用している int 形式の変数に値を格納する必要があります。元。11.0.0.2 0 の 0 の 2 を変数に格納する必要があります。以前に 1 つの変数で行ったが、3 つではなかった場合、どうすればよいでしょうか? これが私が最初のものを解析した方法です。ここには、それらが入る必要がある変数もあります。

string[] s = cmboBoxPreviousVersion.Items[cmboBoxPreviousVersion.SelectedIndex].ToString().Split(' ');
int id;

SelectedVersion.FormatID = Convert.ToInt32(s[0]);
SelectedVersion.load();

string oldPath = lblBrowseName.Text;
string newpath = @"C:\Users\Public\Labels\";
int labelcode = Convert.ToInt32(SelectedVersion.FormatID);
int v1 = 0;
int v2 = 0;
int v3 = 1;

彼らは同じクラスにいます。

4

2 に答える 2

2

コードを記述する代わりに、 Versionクラスを使用してみてください。

バージョン番号の解析と比較のために設計されました。

あなたはこのようなことをすることができます

string versionText = "11.1.2.3" ;
Version versionNumber = new Version( versionText ) ;

またはVersion.TryParse()、無効なデータの処理方法を制御する場合は、を使用します。

string versionText = "11.1.2.3" ;
Version versionNumber 
bool parsedOk = Version.TryParse(versionText,out versionNumber) ;
于 2013-11-05T22:33:47.260 に答える
0

私がこの権利を読んでいる場合、「11.0.0.2」のような文字列を int の配列 {11, 0, 0, 2} に取りたいと考えています。

splitこれは、 およびを使用して簡単に実行できますselect

string version = "11.0.0.2";
IEnumerable<int> numbers = version.Split('.').Select(int.Parse);

ミッチが言ったように編集して、バージョンを使用してこれをさらに簡単にすることができます。

Version versionNumber = new Version("11.0.0.2");  

この場合、フィールドに入力されるものは次のとおりです

ここに画像の説明を入力

于 2013-11-05T22:40:50.207 に答える