繁体   English   中英

什么是System.Linq.Expressions.Expression中的TKey <Func<TSource,TKey> &gt;?

[英]What is TKey in System.Linq.Expressions.Expression<Func<TSource,TKey>>?

我正在尝试将Linq OrderBy子句所需的表达式存储在数据结构中,因此我可以只query = query.OrderBy(MySortExpression);

OrderBySystem.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM