나는 더 새로운 코더이며 다음과 같은 lamdba 표현식을 표현식을 사용하여 동적으로 생성하는 데 많은 문제가있다. 나무. (x, y) => DateTime.Compare (y.EFFECTIVE_DATE, x.EFFECTIVE_DATE)와 같은 동적 표현식은 어떻게 만듭니 까?
(x, y) => DateTime.Compare(y.EFFECTIVE_DATE, x.EFFECTIVE_DATE)
난 그냥 식 나무의 기초를 이해하기 시작하고 있지만이를 만들 정도로 알고하지 못하는 것 같습니다. 솔직히 나는 이걸 가지고 정말 멍청하기 때문에 진짜로 여기에 올릴 수있는 좋은 코드가 없습니다. 어떤 도움이라도 좋을 것입니다.
미리 감사드립니다.
죄송합니다. 처음으로 글을 올리거나 항목을 서식 지정하는 데 문제가 있습니다.
그래서, 내 주요 방법 나는 다음과 같습니다
var에 sortExpression = testing.GetExpression ("EFFECTIVE_DATE", "EFFECTIVE_DATE");
if (e.SortDirection == SortDirection.Ascending)
{
paymentAuthorizationList.Sort(sortExpression);
}
그리고, 내 가져 오기 표현 방법에 :
public Expression<Func<AuthorizePayments, AuthorizePayments, int >> GetExpression<t>(string propertyName, string propertyValue)
{
var paramX = Expression.Parameter(typeof(AuthorizePayments), "x"); // x
var paramY = Expression.Parameter(typeof(AuthorizePayments), "y"); // y
var xDate = Expression.Property(paramX, "EFFECTIVE_DATE"); // x.EFFECTIVE_DATE
var yDate = Expression.Property(paramY, "EFFECTIVE_DATE"); // y.EFFECTIVE_DATE
// DateTime.Compare(y.EFFECTIVE_DATE, x.EFFECTIVE_DATE)
var body = Expression.Call(typeof(DateTime).GetMethod("DateTime.Compare"), yDate, xDate);
// (x, y) => DateTime.Compare(y.EFFECTIVE_DATE, x.EFFECTIVE_DATE)
var expr = Expression.Lambda<Func<AuthorizePayments, AuthorizePayments, int >>(body, paramX, paramY);
반환 EXPR; }
이 시점에서 변수가 잘못되었음을 알고 있습니다. 정렬 식에는 정렬식이 적용되지 않습니다.
내가 뭘 하려는지 근거가 없습니까?
내 무지와 도움에 대한 죄송합니다. 당신이 "손으로"그렇게하려는 경우
Expression<Func<Foo, Foo, int>> expr =
(x, y) => DateTime.Compare(y.EFFECTIVE_DATE, x.EFFECTIVE_DATE);
:
내가 내가이 모든 일을 잘못했는지 궁금해. 내가 뭘하려고 그리드에 대한 정렬 표현을 빌드하는 것입니다. 내 데이터 소스로 List
내 주요 방법 : var sortExpression = testing.GetExpression ("EFFECTIVE_DATE", "EFFECTIVE_DATE"); \t \t 경우 (e.SortDirection == SortDirection.Ascending) { \t paymentAuthorizationList.Sort (sortExpression); } –
kurabdurbos
편집 한 버전에서 어떤 문제가 있습니까? 좋은데. – usr