lambda/LINQ中的变量

Voj*_*iik 0 c# linq lambda

有没有办法让下面的lambda表达式将方法调用移动ConvertFilterType(filter.FilterTypeId)到一个变量中,因此不会为每个条件重复调用它?

此if语句确保集合包含所有必需的过滤器.

if (run.Filters.All(
           filter => (ConvertFilterType(filter.FilterTypeId) != FilterType.A)
                  && (ConvertFilterType(filter.FilterTypeId) != FilterType.B)
                  && (ConvertFilterType(filter.FilterTypeId) != FilterType.C)
                  && (ConvertFilterType(filter.FilterTypeId) != FilterType.D)
                  && (ConvertFilterType(filter.FilterTypeId) != FilterType.E)))
    {
       throw new ArgumentException();
    } 
Run Code Online (Sandbox Code Playgroud)

Kin*_*ing 6

if (run.Filters.All(
       filter => {
              FilterType t = ConvertFilterType(filter.FilterTypeId);
              return
              t != FilterType.A && t != FilterType.B && t != FilterType.C && t != FilterType.D && t != FilterType.E;                        
         }))
   {
    throw new ArgumentException();
   } 
Run Code Online (Sandbox Code Playgroud)