Queryable.ThenBy Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Utför en efterföljande ordning av elementen i en sekvens i stigande ordning.
Överlagringar
| Name | Description |
|---|---|
| ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) |
Utför en efterföljande ordning av elementen i en sekvens i stigande ordning enligt en nyckel. |
| ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) |
Utför en efterföljande ordning av elementen i en sekvens i stigande ordning med hjälp av en angiven jämförelse. |
ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>)
Utför en efterföljande ordning av elementen i en sekvens i stigande ordning enligt en nyckel.
public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IOrderedQueryable<TSource> ^ ThenBy(System::Linq::IOrderedQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector);
public static System.Linq.IOrderedQueryable<TSource> ThenBy<TSource,TKey>(this System.Linq.IOrderedQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector);
static member ThenBy : System.Linq.IOrderedQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> -> System.Linq.IOrderedQueryable<'Source>
<Extension()>
Public Function ThenBy(Of TSource, TKey) (source As IOrderedQueryable(Of TSource), keySelector As Expression(Of Func(Of TSource, TKey))) As IOrderedQueryable(Of TSource)
Typparametrar
- TSource
Typen av element sourcei .
- TKey
Typen av nyckel som returneras av funktionen som representeras av keySelector.
Parametrar
- source
- IOrderedQueryable<TSource>
En IOrderedQueryable<T> som innehåller element som ska sorteras.
- keySelector
- Expression<Func<TSource,TKey>>
En funktion för att extrahera en nyckel från varje element.
Returer
En IOrderedQueryable<T> vars element sorteras enligt en nyckel.
Undantag
source eller keySelector är null.
Exempel
Följande kodexempel visar hur du använder ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) för att utföra en sekundär ordning av elementen i en sekvens.
string[] fruits = { "grape", "passionfruit", "banana", "apple",
"orange", "raspberry", "mango", "blueberry" };
// Sort the strings first by their length and then
// alphabetically by passing the identity selector function.
IEnumerable<string> query =
fruits.AsQueryable()
.OrderBy(fruit => fruit.Length).ThenBy(fruit => fruit);
foreach (string fruit in query)
Console.WriteLine(fruit);
/*
This code produces the following output:
apple
grape
mango
banana
orange
blueberry
raspberry
passionfruit
*/
Dim fruits() As String = _
{"grape", "passionfruit", "banana", "mango", _
"orange", "raspberry", "apple", "blueberry"}
' Sort the strings first by their length and then
' alphabetically by passing the identity selector function.
Dim query = fruits.AsQueryable() _
.OrderBy(Function(fruit) fruit.Length).ThenBy(Function(fruit) fruit)
' Display the results.
Dim output As New System.Text.StringBuilder
For Each fruit As String In query
output.AppendLine(fruit)
Next
MsgBox(output.ToString())
'This code produces the following output:
'apple
'grape
'mango
'banana
'orange
'blueberry
'raspberry
'passionfruit
Kommentarer
Den här metoden har minst en parameter av typen Expression<TDelegate> vars typargument är en av typerna Func<T,TResult> . För dessa parametrar kan du skicka ett lambda-uttryck och kompileras till en Expression<TDelegate>.
Metoden ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) genererar en MethodCallExpression som representerar att anropa ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) sig själv som en konstruerad generisk metod. Den skickar sedan till CreateQuery<TElement>(Expression) metoden för den IQueryProvider som representeras av Provider egenskapen för parameternsource.MethodCallExpression Resultatet av anropet CreateQuery<TElement>(Expression) omvandlas till typ IOrderedQueryable<T> och returneras.
Frågebeteendet som uppstår till följd av att ett uttrycksträd som representerar anrop ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) körs beror på implementeringen av source parametertypen. Det förväntade beteendet är att den utför en sekundär typ av elementen source baserat på nyckeln som hämtas genom att keySelector anropa på varje element i source. Alla tidigare etablerade sorteringsordningar bevaras.
Gäller för
ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>)
Utför en efterföljande ordning av elementen i en sekvens i stigande ordning med hjälp av en angiven jämförelse.
public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IOrderedQueryable<TSource> ^ ThenBy(System::Linq::IOrderedQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector, System::Collections::Generic::IComparer<TKey> ^ comparer);
public static System.Linq.IOrderedQueryable<TSource> ThenBy<TSource,TKey>(this System.Linq.IOrderedQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Collections.Generic.IComparer<TKey> comparer);
static member ThenBy : System.Linq.IOrderedQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> * System.Collections.Generic.IComparer<'Key> -> System.Linq.IOrderedQueryable<'Source>
<Extension()>
Public Function ThenBy(Of TSource, TKey) (source As IOrderedQueryable(Of TSource), keySelector As Expression(Of Func(Of TSource, TKey)), comparer As IComparer(Of TKey)) As IOrderedQueryable(Of TSource)
Typparametrar
- TSource
Typen av element sourcei .
- TKey
Typen av nyckel som returneras av funktionen som representeras av keySelector.
Parametrar
- source
- IOrderedQueryable<TSource>
En IOrderedQueryable<T> som innehåller element som ska sorteras.
- keySelector
- Expression<Func<TSource,TKey>>
En funktion för att extrahera en nyckel från varje element.
- comparer
- IComparer<TKey>
En IComparer<T> för att jämföra nycklar.
Returer
En IOrderedQueryable<T> vars element sorteras enligt en nyckel.
Undantag
source eller keySelector är comparernull.
Kommentarer
Den här metoden har minst en parameter av typen Expression<TDelegate> vars typargument är en av typerna Func<T,TResult> . För dessa parametrar kan du skicka ett lambda-uttryck och kompileras till en Expression<TDelegate>.
Metoden ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) genererar en MethodCallExpression som representerar att anropa ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) sig själv som en konstruerad generisk metod. Den skickar sedan till CreateQuery<TElement>(Expression) metoden för den IQueryProvider som representeras av Provider egenskapen för parameternsource.MethodCallExpression Resultatet av anropet CreateQuery<TElement>(Expression) omvandlas till typ IOrderedQueryable<T> och returneras.
Frågebeteendet som uppstår till följd av att ett uttrycksträd som representerar anrop ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) körs beror på implementeringen av source parametertypen. Det förväntade beteendet är att den utför en sekundär typ av elementen source baserat på nyckeln som hämtas genom att keySelector anropa på varje element i source. Alla tidigare etablerade sorteringsordningar bevaras. Parametern comparer används för att jämföra nyckelvärden.