У меня есть два выражения:
public static Expression<Func<int, bool>> IsDivisibleByFive() {
return (x) => x % 5 == 0;
}
и
public static Expression<Func<int, bool>> StartsWithOne() {
return (x) => x.ToString().StartsWith("1");
}
И я хочу создать новое выражение, которое применяет оба сразу (одни и те же выражения используются во всем моем кодев разных комбинациях):
public static Expression<Func<int, bool>> IsValidExpression() {
return (x) => IsDivisibleByFive(x) && StartsWithOne(x);
}
Затем выполните:
public static class IntegerExtensions
{
public static bool IsValid(this int self)
{
return IsValidExpression().Compile()(self);
}
}
И в моем коде:
if (32.IsValid()) {
//do something
}
У меня есть много таких выражений, которые я хочу определитьодин раз вместо дублирования кода повсюду.
Спасибо.