Queryable.OrderBy 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.
Sorterar elementen i en sekvens i stigande ordning.
Överlagringar
| Name | Description |
|---|---|
| OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) |
Sorterar elementen i en sekvens i stigande ordning med hjälp av en angiven jämförelse. |
| OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) |
Sorterar elementen i en sekvens i stigande ordning enligt en nyckel. |
OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>)
Sorterar 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> ^ OrderBy(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector, System::Collections::Generic::IComparer<TKey> ^ comparer);
public static System.Linq.IOrderedQueryable<TSource> OrderBy<TSource,TKey>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Collections.Generic.IComparer<TKey> comparer);
static member OrderBy : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> * System.Collections.Generic.IComparer<'Key> -> System.Linq.IOrderedQueryable<'Source>
<Extension()>
Public Function OrderBy(Of TSource, TKey) (source As IQueryable(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
- IQueryable<TSource>
En sekvens med värden i ordning.
- keySelector
- Expression<Func<TSource,TKey>>
En funktion för att extrahera en nyckel från ett 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 OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) genererar en MethodCallExpression som representerar att anropa OrderBy<TSource,TKey>(IQueryable<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 OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) körs beror på implementeringen av source parametertypen. Det förväntade beteendet är att det sorterar elementen source i baserat på nyckeln som hämtas genom att keySelector anropa varje element i source. Parametern comparer används för att jämföra nycklar.
Gäller för
OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>)
Sorterar 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> ^ OrderBy(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector);
public static System.Linq.IOrderedQueryable<TSource> OrderBy<TSource,TKey>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector);
static member OrderBy : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> -> System.Linq.IOrderedQueryable<'Source>
<Extension()>
Public Function OrderBy(Of TSource, TKey) (source As IQueryable(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
- IQueryable<TSource>
En sekvens med värden i ordning.
- keySelector
- Expression<Func<TSource,TKey>>
En funktion för att extrahera en nyckel från ett 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 OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) för att sortera elementen i en sekvens.
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void OrderByEx1()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
// Sort the Pet objects in the array by Pet.Age.
IEnumerable<Pet> query =
pets.AsQueryable().OrderBy(pet => pet.Age);
foreach (Pet pet in query)
Console.WriteLine("{0} - {1}", pet.Name, pet.Age);
}
/*
This code produces the following output:
Whiskers - 1
Boots - 4
Barley - 8
*/
Structure Pet
Public Name As String
Public Age As Integer
End Structure
Shared Sub OrderByEx1()
Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8}, _
New Pet With {.Name = "Boots", .Age = 4}, _
New Pet With {.Name = "Whiskers", .Age = 1}}
' Sort the Pet objects in the array by Pet.Age.
Dim query As IEnumerable(Of Pet) = _
pets.AsQueryable().OrderBy(Function(pet) pet.Age)
Dim output As New System.Text.StringBuilder
For Each pet As Pet In query
output.AppendLine(String.Format("{0} - {1}", pet.Name, pet.Age))
Next
' Display the output.
MsgBox(output.ToString())
End Sub
' This code produces the following output:
' Whiskers - 1
' Boots - 4
' Barley - 8
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 OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) genererar en MethodCallExpression som representerar att anropa OrderBy<TSource,TKey>(IQueryable<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 OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) körs beror på implementeringen av source parametertypen. Det förväntade beteendet är att det sorterar elementen source i baserat på nyckeln som hämtas genom att keySelector anropa varje element i source.