检查变量是否包含一些字符串

时间:2017-05-24 19:48:19

标签: c# asp.net-mvc linq

我有这段代码

 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 ::”添加它,如果它没有做任何事情?有可能的?此致

3 个答案:

答案 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();