我在理解如何正确使用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)