[英]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.