Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Queryable.OrderBy<TSource, TKey>(IQueryable<TSource>, Expression<Func<TSource, TKey>>)

 

Data di pubblicazione: ottobre 2016

Ordina gli elementi di una sequenza in ordine crescente in base a una chiave.

Spazio dei nomi:   System.Linq
Assembly:  System.Core (in System.Core.dll)

public static IOrderedQueryable<TSource> OrderBy<TSource, TKey>(
	this IQueryable<TSource> source,
	Expression<Func<TSource, TKey>> keySelector
)

Parametri

source
Type: System.Linq.IQueryable<TSource>

Sequenza di valori da ordinare.

keySelector
Type: System.Linq.Expressions.Expression<Func<TSource, TKey>>

Funzione per estrarre una chiave da un elemento.

Valore restituito

Type: System.Linq.IOrderedQueryable<TSource>

Un IOrderedQueryable<T> i cui elementi sono ordinati in base a una chiave.

Parametri tipo

TSource

Tipo degli elementi di source.

TKey

Il tipo della chiave restituita dalla funzione rappresentata da keySelector.

Exception Condition
ArgumentNullException

source o keySelector è null.

Questo metodo contiene almeno un parametro di tipo Expression<TDelegate> il cui argomento di tipo è uno del Func<T, TResult> tipi. Per questi parametri, è possibile passare un'espressione lambda e verrà compilato in un Expression<TDelegate>.

Il OrderBy<TSource, TKey>(IQueryable<TSource>, Expression<Func<TSource, TKey>>) metodo genera un MethodCallExpression che rappresenta una chiamata OrderBy<TSource, TKey>(IQueryable<TSource>, Expression<Func<TSource, TKey>>) stesso come un metodo generico costruito. Passa quindi il MethodCallExpression per il CreateQuery<TElement>(Expression) metodo il IQueryProvider rappresentato dal Provider proprietà del source parametro. Il risultato della chiamata CreateQuery<TElement>(Expression) viene eseguito il cast al tipo IOrderedQueryable<T> e restituiti.

Il comportamento della query che si verifica in seguito all'esecuzione di una struttura ad albero dell'espressione che rappresenta una chiamata OrderBy<TSource, TKey>(IQueryable<TSource>, Expression<Func<TSource, TKey>>) dipende dall'implementazione del tipo di source parametro. Il comportamento previsto è che vengono ordinati gli elementi di source in base alla chiave ottenuta richiamando keySelector su ogni elemento di source.

Esempio di codice seguente viene illustrato come utilizzare OrderBy<TSource, TKey>(IQueryable<TSource>, Expression<Func<TSource, TKey>>) per ordinare gli elementi di una sequenza.

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
*/

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 3.5
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.1
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: