@@ -15,10 +15,7 @@ public static Expression<Func<T, bool>> BuildPredicate(IEnumerable<WhereExpressi
1515 return Expression . Lambda < Func < T , bool > > ( expressionBody , param ) ;
1616 }
1717
18- /// <summary>
19- /// Makes the predicate body from the supplied parameter and list of where expressions
20- /// </summary>
21- private static Expression MakePredicateBody ( IEnumerable < WhereExpression > wheres )
18+ static Expression MakePredicateBody ( IEnumerable < WhereExpression > wheres )
2219 {
2320 Expression ? mainExpression = null ;
2421 var previousWhere = new WhereExpression ( ) ;
@@ -78,9 +75,6 @@ public static Expression<Func<T, bool>> BuildPredicate(string path, Comparison c
7875 return Expression . Lambda < Func < T , bool > > ( expressionBody , param ) ;
7976 }
8077
81- /// <summary>
82- /// Makes the predicate body from the single set of supplied conditional arguments
83- /// </summary>
8478 static Expression MakePredicateBody ( string path , Comparison comparison , string ? [ ] ? values , bool negate , StringComparison ? stringComparison )
8579 {
8680 Expression expressionBody ;
@@ -202,13 +196,11 @@ static Expression MakeStringListInComparison(string[] values, Property<T> proper
202196 {
203197 MethodCallExpression equalsBody ;
204198
205- // If string comparison not provided
206199 if ( comparison is null )
207200 {
208201 // Do basic string compare
209202 equalsBody = Expression . Call ( null , ReflectionCache . StringEqual , ExpressionCache . StringParam , property . Left ) ;
210203 }
211- // Otherwise
212204 else
213205 {
214206 // String comparison with comparison type value
@@ -277,38 +269,27 @@ static Expression MakeSingleObjectComparison(Comparison comparison, object? valu
277269 var left = property . Left ;
278270 var constant = Expression . Constant ( value , left . Type ) ;
279271
280- switch ( comparison )
272+ return comparison switch
281273 {
282- case Comparison . Equal :
283- return Expression . MakeBinary ( ExpressionType . Equal , left , constant ) ;
284- case Comparison . GreaterThan :
285- return Expression . MakeBinary ( ExpressionType . GreaterThan , left , constant ) ;
286- case Comparison . GreaterThanOrEqual :
287- return Expression . MakeBinary ( ExpressionType . GreaterThanOrEqual , left , constant ) ;
288- case Comparison . LessThan :
289- return Expression . MakeBinary ( ExpressionType . LessThan , left , constant ) ;
290- case Comparison . LessThanOrEqual :
291- return Expression . MakeBinary ( ExpressionType . LessThanOrEqual , left , constant ) ;
292- }
293-
294- throw new ( $ "Invalid comparison operator '{ comparison } '.") ;
274+ Comparison . Equal => Expression . MakeBinary ( ExpressionType . Equal , left , constant ) ,
275+ Comparison . GreaterThan => Expression . MakeBinary ( ExpressionType . GreaterThan , left , constant ) ,
276+ Comparison . GreaterThanOrEqual => Expression . MakeBinary ( ExpressionType . GreaterThanOrEqual , left , constant ) ,
277+ Comparison . LessThan => Expression . MakeBinary ( ExpressionType . LessThan , left , constant ) ,
278+ Comparison . LessThanOrEqual => Expression . MakeBinary ( ExpressionType . LessThanOrEqual , left , constant ) ,
279+ _ => throw new ( $ "Invalid comparison operator '{ comparison } '.")
280+ } ;
295281 }
296282
297283 static bool HasListPropertyInPath ( string path ) =>
298284 Regex . IsMatch ( path , listPropertyPattern ) ;
299285
300- static Expression CombineExpressions ( Connector connector , Expression expr1 , Expression expr2 )
301- {
302- switch ( connector )
286+ static Expression CombineExpressions ( Connector connector , Expression expr1 , Expression expr2 ) =>
287+ connector switch
303288 {
304- case Connector . And :
305- return Expression . AndAlso ( expr1 , expr2 ) ;
306- case Connector . Or :
307- return Expression . OrElse ( expr1 , expr2 ) ;
308- }
309-
310- throw new ( $ "Invalid connector operator '{ connector } '.") ;
311- }
289+ Connector . And => Expression . AndAlso ( expr1 , expr2 ) ,
290+ Connector . Or => Expression . OrElse ( expr1 , expr2 ) ,
291+ _ => throw new ( $ "Invalid connector operator '{ connector } '.")
292+ } ;
312293
313294 static Expression NegateExpression ( Expression expression ) =>
314295 Expression . Not ( expression ) ;
0 commit comments