订单中的TKey
本文关键字:TKey 单中 | 更新日期: 2023-09-27 18:05:36
我想创建一个接收一个参数的函数:
1. 委托获取任何MyObj实例并返回一个键(如OrderBy方法)。
所以我可以这样做:
function IQueryable<Worker> doSomething(Func<Worker, TKey> getter) {
Workers.Where(x=>getter(x)==9);
}
这个方法应该与实体框架一起工作。未定义TKey。我该怎么做呢?
如果您想将其与特定类型(如整数)进行比较,只需在签名中使用该类型:
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));
}