我在理解如何正确使用Except()时遇到麻烦。我想在where子句中使用Except()排除与字符串列表匹配的结果。我用下面的简单例子来说明。

另外,在这种情况下使用Except是最快的方法吗?如果没有,会更快吗?

我在这里:

var result = (from FunTable in Context.t_FunTable

              where FunTable.ft_FunStartDate >= startDate
              && FunTable.ft_FunEndDate <= endDate

       ---->  && FunTable.ft_FunStage != notAllowedStage1
       ---->  && FunTabble.ft_FunStage != notAllowedStage2

              select FunTable.ActivityName).ToList<String>();


我想这样做:

var result = (from FunTable in Context.t_FunTable

              where FunTable.ft_FunStartDate >= startDate
              && FunTable.ft_FunEndDate <= endDate

      ---->   && FunTable.ft_FunStage.Except(ListOfNotAllowedStages)

              select FunTable.ActivityName).ToList<String>();

最佳答案

您可以改用Contains

!ListOfNotAllowedStage.Contains(FunTable.ft_FunStage)


Any

!ListOfNotAllowedStage.Any(x => x == FunTable.ft_FunStage)

09-18 17:53