Lambda表达式字符串比较

时间:2017-06-20 19:11:30

标签: c# string lambda comparison

我一直试图确定为什么我的lambda表达式不起作用。它应该检查CHECK_STATUS_CD以查看是否有" 1"或者" 0"。但是,无论它进入if语句的值如何。下面是带有表达式的if语句。

 using (DocumentEntities dbConnection = new DocumentEntities())
 {
     if (dbConnection.CHECKs.Any(c => c.FUSION_CHECK_ID == fusionCheckID))
     {
          if (dbConnection.CHECKs.Any(s => s.CHECK_STATUS_CD == "0"))
          {
              PotentialChecks.Check.Add(check);
           }
      }
      else
      {
         PotentialChecks.Check.Add(check);
      }
}     

我试图比较CHECK_STATUS_CD和" 0"以多种方式,包括s.CHECK_STATUS_CD.Equals(" 0");但是,当任何值传递时,我会收到相同的结果。我应该如何编写我的lambda表达式,以便CHECK_STATUS_CD等于" 1"它会传递if语句吗?

由于

2 个答案:

答案 0 :(得分:0)

如果CHECK_STATUS_CD的类型为字符串,则不应存在问题,但需要查看CHECKs类以便更清楚地了解。

如果CHECK_STATUS_CD不属于string类型,那么您可能需要考虑使用.Equals()

答案 1 :(得分:0)

为了解决这个问题,我们不得不修改第二个if语句。下面是用我们必须做的更新的同一段代码。

 using (DocumentEntities dbConnection = new DocumentEntities())
 {
     if (dbConnection.CHECKs.Any(c => c.FUSION_CHECK_ID == fusionCheckID))
     {
         var currentCheck = dbConnection.CHECKs.Where(x => x.FUSION_CHECK_ID 
                            == check.CheckID && x.CHECK_STATUS_CD == 
                            "0").FirstOrDefault();

         if (currentCheck != null)
         {
             PotentialChecks.Check.Add(check);
         }
      }
      else
      {
          PotentialChecks.Check.Add(check);
      }
 }