TKey от OrderBy - PullRequest
       12

TKey от OrderBy

0 голосов
/ 13 августа 2011

Я хочу создать функцию, которая получает один параметр:
1. Делегат, который получает любой экземпляр MyObj и возвращает ключ (например, метод OrderBy).

Так что я могу сделать следующее:

function IQueryable<Worker> doSomething(Func<Worker, TKey> getter) {
    Workers.Where(x=>getter(x)==9);
}

Этот метод должен работать с платформой сущностей.TKey не является определяющим.Как я могу это сделать?

1 Ответ

1 голос
/ 13 августа 2011

Если вы хотите сравнить его с конкретным типом, таким как целое число, просто используйте этот тип в подписи:

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));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...