2013-03-11 24 views
-2

編輯:用繩子檢查版本的C#

簡單的例子,我要如何檢查:

我有一個string包含: 「0101」。

我要檢查如果string至少0101或更高版本,而無需將其轉換爲int,因爲這將改變我的string到:101

編輯:

回答是這樣的:

private void VersionCheck(string version) 
     { 
      string firmwareVersion = version.Substring(0, 4); 
      string biosVersion = version.Substring(4, 4); 

      var isEqualOrHigherFirmwareVersion = string.Compare(firmwareVersion, Settings.MinimalFirmwareUnikon, CultureInfo.InvariantCulture, CompareOptions.None) >= 0; 

     if (!isEqualOrHigherFirmwareVersion) 
     { 
      _serial.ClosePortConnection(); 
      DisplayLog("CLOCK: Firmware NOT OK : Unsupported version"); 
     MessageBox.Show("Unsupported clock Firmware!", "Firmware", MessageBoxButtons.OK, MessageBoxIcon.Error); 
     } 
     else 
     { 
      DisplayLog("CLOCK: Firmware OK : v" + firmwareVersion.ToString()); 
     } 

     var isEqualOrHigherBiosVersion = string.Compare(biosVersion,  `Settings.MinimalBiosUnikon, CultureInfo.InvariantCulture, CompareOptions.None) >= 0;` 

     if (!isEqualOrHigherBiosVersion) 
     { 
      _serial.ClosePortConnection(); 
      DisplayLog("CLOCK: BIOS NOT OK : Unsupported version"); 
      MessageBox.Show("Unsupported clock BIOS version!", "BIOS", MessageBoxButtons.OK, MessageBoxIcon.Error); 
     } 
     else 
     { 
      DisplayLog("CLOCK: BIOS OK : v" + biosVersion.ToString()); 
     } 
    } 
+0

sampleVersion有5個字符而不是8個。 – 2013-03-11 12:52:46

+0

不,它只是一個樣本,我怎樣才能檢查一個字符串中的數字是否至少是一個x數?沒有把它轉換成int – Max 2013-03-11 12:53:22

+0

'int parsed; var isParsed = int.TryParse(sampleVersion,out parsed); if(isParsed)return parsed <= x;返回false;' – publicgk 2013-03-11 12:54:24

回答

2
var input = "0102"; 
var supportedVersion = "0101"; 
var isGreaterOrHigher = string.Compare(input, supportedVersion, 
        CultureInfo.InvariantCulture, CompareOptions.None) >= 0; 

但是,什麼是錯int.Parse/int.TryParse