我有这段代码
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();
你可以看到我做了一些比较:x.str_NombreVariable == "User::v_sRutaArchivo"
or x.str_NombreVariable == "User::v_IdBitacoraCarga"
问题是,我有x.str_NombreVariable
的值没有"User::"
并且它与comparission不匹配。所以我尝试做类似的事情:
"User::"+x.str_NombreVariable == "User::v_sRutaArchivo"
问题是某些x.str_NombreVariable
默认带有“User ::”,所以我得到:
User::User::NombreVariable
这是错误的我只需要User :: NombreVariable
换句话说:我怎样才能检查x.str_NombreVariable
是否包含“User ::”添加它,如果它没有做任何事情?有可能的?此致
答案 0 :(得分:1)
检查字符串是否以User ::开头,如果它没有添加它:
if (!x.str_NombreVariable.StartsWith("User::"))
x.str_NombreVariable = "User::" + x.str_NombreVariable;
把这个代码放在你的上面,你应该很好。
修改:我只是添加了缺失的')'
答案 1 :(得分:0)
if ("User::v_sRutaArchivo".Contains(x.str_NombreVariable))
此条件适用于任何情况。
答案 2 :(得分:0)
另一个解决方案是从变量和硬编码字符串中删除“User ::”部分:
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();