이 기사에서는 논리 및 OR을 사용하여 연산자가 아닌 유형의 두 가지 C# 표현식을 결합하는 방법을 보여줍니다. 매개 변수 불일치로 인해
방법 1 : 간단한 조합 (동일한 매개 변수)
메소드 2 : invoke 를 사용하여 다른 매개 변수와 표현식을 결합합니다
는
메소드 4 : ExpressionVisitor (.NET 4.0 이상)을 사용한 EF-SAFE 접근
Entity Framework 호환성의 경우
이 방법은 다양한 LINQ 제공 업체와의 호환성을 보장하기 위해 표현식 내에서 매개 변수 참조를 대체합니다. 방법의 선택은 응용 프로그램의 특정 요구 사항과 컨텍스트, 특히 사용 된 LINQ 제공 업체 및 매개 변수 일관성이 보장되는지 여부에 따라 다릅니다. 접근법은 복잡한 시나리오 및 엔티티 프레임 워크 통합을위한 가장 강력한 솔루션을 제공합니다.
Expression<Func<bool>>
또는 expr1 AND expr2
를 사용하는 것입니다.
Expression.AndAlso
를 Expression.OrElse
메소드 3 : 최적화 된 조합 (동일한 매개 변수 및 다른 매개 변수 핸들) <code class="language-csharp">var body = Expression.AndAlso(expr1.Body, expr2.Body);
var lambda = Expression.Lambda<Func<bool>>(body, expr1.Parameters[0]);</code>
: 를 사용합니다.
<code class="language-csharp">static Expression<Func<bool>> Not<T>(this Expression<Func<bool>> expr)
{
return Expression.Lambda<Func<bool>>(Expression.Not(expr.Body), expr.Parameters[0]);
}</code>
는 강력한 솔루션을 제공합니다.
위 내용은 C#의 연산자가 아닌 두 가지 표현식 표현식을 결합 할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!