我想创建一个接收一个参数的函数:
1.委托获取任何MyObj实例并返回一个键(如OrderBy方法)。
所以我可以做到以下几点:
function IQueryable<Worker> doSomething(Func<Worker, TKey> getter) {
Workers.Where(x=>getter(x)==9);
}
此方法应与实体框架一起使用。 TKey不是默默无闻的。我该怎么办?
答案 0 :(得分:1)
如果要将其与特定类型(如整数)进行比较,只需在签名中使用该类型:
public IQueryable<Worker> doSomething(Func<Worker, int> getter) {
Workers.Where(x => getter(x) == 9);
}
否则,您必须将其作为泛型类型包含,并为比较提供该类型的值:
public IQueryable<Worker> doSomething<TKey>(Func<Worker, TKey> getter, TKey value) {
Workers.Where(x => getter(x).Equals(value));
}