Wie konvertiere ich einen Func in einen Ausdruck? [Duplikat]
Posted: 21 May 2025, 13:24
Ich habe Folgendes: < /p>
Ich verwende die erste Methode in der Standardmethode, wobei Methode. Ich verwende die zweite Methode in einer benutzerdefinierten Erweiterung: < /p>
Ich möchte den Code so neu gestalten, damit ich entweder den Filter in nur einer Methode festlegt und meine Erweiterungsmethode durch eine Standardmethode ersetze.>
Code: Select all
public Func GetFilter(Status status) => status switch
{
Status.Active => x => x.Status == Status.Active && x.ValidFrom x => true
};
public Expression GetFilterAsExpression(Status status) => status switch
{
Status.Active => x => x.Status == Status.Active && x.ValidFrom x => true
};
Code: Select all
public static Expression And(this Expression expr1, Expression expr2)
{
var secondBody = expr2.Body.Replace(expr2.Parameters[0], expr1.Parameters[0]);
return Expression.Lambda(Expression.AndAlso(expr1.Body, secondBody), expr1.Parameters);
}