2017-05-24 32 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(); 
相关问题