Я пытаюсь создать метод расширения с дженериков, в котором вы получите список независимо от класса, к примеру:выражение Изменить лямбда в методе расширения
class User
{
public string name {get;set;}
public int age {get;set;}
public string lastLogon {get;set;}
}
Я пытаюсь построить expresion, в котором вы переходите к методу расширения IEnumerable и указываете, что является свойством строковой даты. (В этом случае lastLogon
)
Без метода расширения Это должно быть что-то вроде:
userList.OrderBy(x => Convert.ToDateTime(x.lastLogon));
Это то, что я сделал до сих пор:
public static IEnumerable<TSource> OrderEnumerablebyDatetimeString<TSource,TKey>(
this IEnumerable<TSource> input, Func<TSource, TKey> funcexpr)
{
//modify expression to get the date field and modify the lambda expr
Expression<Func<TSource, TKey>> expr = ???
return input.OrderBy(funcexpr);
}
Мой последний звонок расширение должно выглядеть следующим образом:
userList.OrderEnumerablebyDatetimeString(x => x.lastLogon);
использование 'Expression> funcexpr' вместо' Func funcexpr' –
Grundy
Grundy прав, если это Linq-to-SQL. –
@JeppeStigNielsen Я имею в виду, что после изменения вызова 'Compile' и использовать с' IEnumerable' – Grundy