как «не» лямбда-выражение для структуры лица - PullRequest
9 голосов
/ 24 сентября 2010

Учитывая следующее

Expression<Func<T,bool>> matchExpression;

Как мне создать другое выражение, которое "не" существующего.

Я пытался

Expression<Func<T, bool>> func3 = (i) => !matchExpression.Invoke(i);

но это не поддерживается структурой сущности ...

С уважением

1 Ответ

10 голосов
/ 24 сентября 2010

Вы должны воссоздать новую лямбду и отвергнуть тело оригинальной:

Expression<Func<T, bool>> not = Expression.Lambda<Func<T, bool>> (
    Expression.Not (matchExpression.Body),
    matchExpression.Parameters [0]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...