new*_*_86 2 c# lambda expression
我想创建以下方法,该方法接受lambda表达式并通过它对数据进行排序.我似乎无法正确设置它.
看起来像这样的地方??? 是lambda表达式:
public static MyList<T> PageAndSort<T>(this IEnumerable<T> data, ???)
Run Code Online (Sandbox Code Playgroud)
会像这样使用:
MyList.PageAndSort(List<MyEntity> data, x=>x.ChildEntity.Name)
Run Code Online (Sandbox Code Playgroud)
LINQ有一个非常类似的方法:OrderBy.看看它的签名并模仿它:
public static IOrderedEnumerable<TSource> OrderBy<TSource, TKey>(
this IEnumerable<TSource> source,
Func<TSource, TKey> keySelector
)
Run Code Online (Sandbox Code Playgroud)
适用于您的案例:
public static MyList<TSource> PageAndSort<TSource, TKey>(
this IEnumerable<TSource> data,
Func<TSource, TKey> keySelector
)
Run Code Online (Sandbox Code Playgroud)
Func<T, TResult>是一个委托,其中一个类型的参数T返回一个TResult.