2017-05-24 40 views
0

我有這樣一段代碼檢查變量包含一些字符串

if (x.str_NombreVariable == "User::v_sRutaArchivo") 
          x.str_ValorVariable += str_Archivo; 
         else if (x.str_NombreVariable == "User::v_IdBitacoraCarga") 
         x.str_ValorVariable = _Bcarga.IdBitacoraCarga.ToString(); 

,你可以看到我做一些comparissions:x.str_NombreVariable == "User::v_sRutaArchivo"or x.str_NombreVariable == "User::v_IdBitacoraCarga"

問題是,我有值到x.str_NombreVariable誰doesn't有"User::",它不符合comparission。於是我試着這樣做:

"User::"+x.str_NombreVariable == "User::v_sRutaArchivo" 

問題是一些x.str_NombreVariable配備了「用戶::」爲默認,所以我得到:

User::User::NombreVariable 

,這是錯誤的,我只需要用戶:: NombreVariable

換句話說:我如何檢查x.str_NombreVariable是否包含「User ::」添加它,如果它沒有做任何事情?有可能的?問候

回答

1

只是檢查,如果字符串以用戶開始::如果它不添加它:

if (!x.str_NombreVariable.StartsWith("User::")) 
    x.str_NombreVariable = "User::" + x.str_NombreVariable; 

將這個代碼上面你的,你應該是好的。

編輯:我只需要添加缺少「)」

0
if ("User::v_sRutaArchivo".Contains(x.str_NombreVariable)) 

這種情況將在任何情況下工作。

+0

但如果添加字符串「用戶::」如果它沒有?如果不是,我想添加它 – Gerardo

+0

即使不修改變量的值,這段代碼也能正常工作。如果您需要添加「User ::」,即使成功比較了值,然後看看@ Timo的答案。 – Guilherme

0

另一種解決辦法是刪除您的變量「用戶::」部分和硬編碼字符串:

var nombreVar = x.str_NombreVariable.Replace("User::", ""); 
if (nombreVar == "v_sRutaArchivo") 
    x.str_ValorVariable += str_Archivo; 
else if (nombreVar == "v_IdBitacoraCarga") 
    x.str_ValorVariable = _Bcarga.IdBitacoraCarga.ToString(); 
相關問題