簡體   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