2012-05-04 2 views
1

Я пытаюсь хранить выражения, необходимые для Linq OrderBy статей в структурах данных, так что я могу просто пойти query = query.OrderBy(MySortExpression);Что такое TKey в System.Linq.Expressions.Expression <Func <TSource, TKey >>?

OrderBy принимает System.Linq.Expressions.Expression<Func<TSource,TKey>> в качестве параметра. TSource - тип сущности, который вы сортируете, но какой тип TKey должен быть?

ответ

4

TKey является универсальным аргументом типа, обозначающий тип выражения, на котором сортировки. Например, при сортировке строк по длине, TSource будет string и TKey будет int, как в коде ниже:

string [] myStrings = new[] {"quick", "brown", "fox", "jumps"}; 
var ordered = myStrings.OrderBy(s => s.Length); 
2

TKey - тип возвращаемого типа выражения. Например:

users.OrderBy(user => user.Name); 

Как зовут строка, тип будет System.Linq.Expressions.Expression<Func<User,string>>

2

TKey не привязан к определенному типу. Обычно это проекция свойства на примитивный тип, чтобы включить сортировку.

Предполагая Person с BirthYear собственности необходимо выбрать

persons.OrderBy(p => p.BirthYear); 
Смежные вопросы