[英]What is TKey in System.Linq.Expressions.Expression<Func<TSource,TKey>>?
我正在尝试将Linq OrderBy
子句所需的表达式存储在数据结构中,因此我可以只query = query.OrderBy(MySortExpression);
OrderBy
将System.Linq.Expressions.Expression<Func<TSource,TKey>>
作为参数。 TSource
是您要排序的实体类型,但是TKey
应该是哪种类型?
TKey
是一个泛型类型参数,表示要在其上进行排序的表达式的类型。 例如,如果按长度对字符串排序,则TSource
将为string
,而TKey
将为int
,如以下代码所示:
string [] myStrings = new[] {"quick", "brown", "fox", "jumps"};
var ordered = myStrings.OrderBy(s => s.Length);
TKey是表达式的返回类型的类型。 例如:
users.OrderBy(user => user.Name);
由于Name是字符串,因此类型为System.Linq.Expressions.Expression<Func<User,string>>
TKey
没有绑定到特定类型。 通常,它是属性对基本类型的投影,以启用排序。
假设一个Person
具有BirthYear
属性,您将选择
persons.OrderBy(p => p.BirthYear);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.